IOS开发自定义滑杆滑动不灵敏及卡顿问题调研及解决方案

iOS实际开发过程中有时会遇到自定义的滑杆不灵敏或者卡顿问题,造成原因是什么呢?
1、组件本身问题

1)、首先确认是不是控件本身的问题,注释掉valueChanged时执行的代码,观察滑杆的滑动是否灵敏;
2)、控件本身的问题,自定义的滑杆一般有三种方式:
a、在UISlider的基础上自定义
b、继承UIControl重新自定义一个滑杆
c、通过手势的拖拽来自定义一个滑杆
b、c方案,控件的灵敏度取决于点触区域的范围,一般建议a方案,系统组件的封装比较流畅

2、卡顿问题,滑动过程中执行了耗时操作

一般来说,执行过程中有耗时操作,不建议使用滑杆的方式来操作;正确的解决方案应该是更换需求(说服PM),可改为点击button切换等等,或者优化算法去除耗时里面的耗时操作。

如何来优化这一缺点呢?
1、方案选择:处理过程中有避免不掉的耗时操作时,UI上尽量不要采用滑杆的调节方式;不提倡异步处理,这样会使滑杆变化与实际处理不同步;
2、采用的丢帧处理,就是滑动比较快时一些回调不做处理。
如下面代码块

    NSLog(@"templateSlider1111 : %.3f", value);
    CGFloat interval = 0.01;
    if ([self isFastClickAction:interval])
    {
        return;
    }
    NSLog(@"templateSlider2222 : %.3f", value);
- (BOOL) isFastClickAction:(NSTimeInterval)interval{
    if (_lastClickDate == nil) {
        _lastClickDate = [NSDate date];
        return NO;
    }
    NSDate *currentDate = (NSDate *)[NSDate date];
    NSTimeInterval intervalFromLast = [currentDate timeIntervalSinceDate:_lastClickDate];
    NSLog(@"click intervalFromLast:%f,interval:%f",intervalFromLast,interval);
    if ( intervalFromLast < 0 ) {
        return NO;
    }
    if(intervalFromLast < interval){
        NSLog(@"click too fast now");
        return YES;
    }
    _lastClickDate = currentDate;
    return NO;
}

为防止最后一次回调是实现的,我们也必须进行最后一次的"补帧操作",在UISlider范围较大变动时,最后会执行UIControlEventTouchUpInside,通过监听这个事件来进行"补帧操作"。(UISlider小范围变动时‘UIControlEventTouchUpInside’可能不执行,当然此时滑杆的速度较慢,所以不需要补帧)

当然,丢帧处理的方式只能适用于耗时操作较小时,下面是针对UISlider的快速滑动操作,不同时间间隔下的丢帧情况(数据源于本人手速):
测试环境:
a、iPhone 6
b、个人普通快速滑动
c、滑杆长度320
下面为挑选的0.01s、0.05s、0.1s的丢帧情况,其他测试结果在此省略。
通过数据测试,可以得出以下结论:
1、耗时操作的执行时间高于设置的丢帧间隔,丢帧处理是不起作用的。
2、快速滑动时,每次滑杆valueChanged的处理间隔时间约0.005s ~0.02s,帧变跨度约2%;
3、丢帧处理的情况:0.01s的丢帧间隔,速度较快时偶尔会有一帧的丢失,跳帧跨度约5%;0.05s的丢帧间隔,每周期会有3帧丢失,帧变跨度20% ~ 30%;0.1s的丢帧间隔,每周期会有4~7帧丢失,帧变跨度40% ~ 60%;较高的帧变跨度会对我们刷新页面渐变变得跳动,所以,为保证刷新页面的渐变效果,一般的丢帧处理应该保证丢帧间隔在0.05s以内。

iPhone6 间隔为0.01s

2018-03-16 23:24:30.656984+0800 VivaLite[3234:625532] templateSlider2222 : 0.716
2018-03-16 23:24:30.671289+0800 VivaLite[3234:625532] templateSlider1111 : 0.633
2018-03-16 23:24:30.671405+0800 VivaLite[3234:625532] templateSlider2222 : 0.633
2018-03-16 23:24:30.693179+0800 VivaLite[3234:625532] templateSlider1111 : 0.547
2018-03-16 23:24:30.693286+0800 VivaLite[3234:625532] templateSlider2222 : 0.547
2018-03-16 23:24:30.704099+0800 VivaLite[3234:625532] templateSlider1111 : 0.465
2018-03-16 23:24:30.704215+0800 VivaLite[3234:625532] templateSlider2222 : 0.465
2018-03-16 23:24:30.726855+0800 VivaLite[3234:625532] templateSlider1111 : 0.400
2018-03-16 23:24:30.727765+0800 VivaLite[3234:625532] templateSlider2222 : 0.400
2018-03-16 23:24:30.737945+0800 VivaLite[3234:625532] templateSlider1111 : 0.341
2018-03-16 23:24:30.738882+0800 VivaLite[3234:625532] templateSlider2222 : 0.341
2018-03-16 23:24:30.762311+0800 VivaLite[3234:625532] templateSlider1111 : 0.301
2018-03-16 23:24:30.762470+0800 VivaLite[3234:625532] templateSlider2222 : 0.301
2018-03-16 23:24:30.771372+0800 VivaLite[3234:625532] templateSlider1111 : 0.272
2018-03-16 23:24:30.771598+0800 VivaLite[3234:625532] click too fast now
2018-03-16 23:24:30.822295+0800 VivaLite[3234:625532] templateSlider1111 : 0.252
2018-03-16 23:24:30.822398+0800 VivaLite[3234:625532] templateSlider2222 : 0.252
2018-03-16 23:24:30.842367+0800 VivaLite[3234:625532] templateSlider1111 : 0.259
2018-03-16 23:24:30.842496+0800 VivaLite[3234:625532] templateSlider2222 : 0.259
2018-03-16 23:24:30.894287+0800 VivaLite[3234:625532] templateSlider1111 : 0.402
2018-03-16 23:24:30.904978+0800 VivaLite[3234:625532] templateSlider2222 : 0.402
2018-03-16 23:24:30.907098+0800 VivaLite[3234:625532] templateSlider1111 : 0.468
2018-03-16 23:24:30.907244+0800 VivaLite[3234:625532] click too fast now
2018-03-16 23:24:30.927183+0800 VivaLite[3234:625532] templateSlider1111 : 0.548
2018-03-16 23:24:30.927888+0800 VivaLite[3234:625532] templateSlider2222 : 0.548
2018-03-16 23:24:30.937072+0800 VivaLite[3234:625532] templateSlider1111 : 0.621
2018-03-16 23:24:30.937260+0800 VivaLite[3234:625532] click too fast now
2018-03-16 23:24:30.954610+0800 VivaLite[3234:625532] templateSlider1111 : 0.686
2018-03-16 23:24:30.954739+0800 VivaLite[3234:625532] templateSlider2222 : 0.686
2018-03-16 23:24:30.974871+0800 VivaLite[3234:625532] templateSlider1111 : 0.746
2018-03-16 23:24:30.976635+0800 VivaLite[3234:625532] templateSlider2222 : 0.746
2018-03-16 23:24:30.991061+0800 VivaLite[3234:625532] templateSlider1111 : 0.794
2018-03-16 23:24:30.991208+0800 VivaLite[3234:625532] templateSlider2222 : 0.794
2018-03-16 23:24:31.014046+0800 VivaLite[3234:625532] templateSlider1111 : 0.836
2018-03-16 23:24:31.014511+0800 VivaLite[3234:625532] templateSlider2222 : 0.836
2018-03-16 23:24:31.029180+0800 VivaLite[3234:625532] templateSlider1111 : 0.869
2018-03-16 23:24:31.029293+0800 VivaLite[3234:625532] templateSlider2222 : 0.869
2018-03-16 23:24:31.037419+0800 VivaLite[3234:625532] templateSlider1111 : 0.895
2018-03-16 23:24:31.037589+0800 VivaLite[3234:625532] click too fast now
2018-03-16 23:24:31.056255+0800 VivaLite[3234:625532] templateSlider1111 : 0.917
2018-03-16 23:24:31.056371+0800 VivaLite[3234:625532] templateSlider2222 : 0.917
2018-03-16 23:24:31.071071+0800 VivaLite[3234:625532] templateSlider1111 : 0.927
2018-03-16 23:24:31.071170+0800 VivaLite[3234:625532] templateSlider2222 : 0.927
2018-03-16 23:24:31.093576+0800 VivaLite[3234:625532] templateSlider1111 : 0.934
2018-03-16 23:24:31.093717+0800 VivaLite[3234:625532] templateSlider2222 : 0.934
2018-03-16 23:24:31.136368+0800 VivaLite[3234:625532] templateSlider1111 : 0.919
2018-03-16 23:24:31.136477+0800 VivaLite[3234:625532] templateSlider2222 : 0.919
2018-03-16 23:24:31.158405+0800 VivaLite[3234:625532] templateSlider1111 : 0.889
2018-03-16 23:24:31.158589+0800 VivaLite[3234:625532] templateSlider2222 : 0.889
2018-03-16 23:24:31.172826+0800 VivaLite[3234:625532] templateSlider1111 : 0.862
2018-03-16 23:24:31.173014+0800 VivaLite[3234:625532] templateSlider2222 : 0.862
2018-03-16 23:24:31.204725+0800 VivaLite[3234:625532] templateSlider1111 : 0.839
2018-03-16 23:24:31.204876+0800 VivaLite[3234:625532] templateSlider2222 : 0.839
2018-03-16 23:24:31.215004+0800 VivaLite[3234:625532] templateSlider1111 : 0.832
2018-03-16 23:24:31.215506+0800 VivaLite[3234:625532] templateSlider2222 : 0.832

iPhone 6,间隔为0.05

2018-03-19 21:00:02.957876+0800 VivaLite[7297:1695311] templateSlider2222 : 0.189
2018-03-19 21:00:02.975809+0800 VivaLite[7297:1695311] templateSlider1111 : 0.209
2018-03-19 21:00:02.975954+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:02.990463+0800 VivaLite[7297:1695311] templateSlider1111 : 0.228
2018-03-19 21:00:02.990665+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.006789+0800 VivaLite[7297:1695311] templateSlider1111 : 0.248
2018-03-19 21:00:03.006998+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.023588+0800 VivaLite[7297:1695311] templateSlider1111 : 0.269
2018-03-19 21:00:03.023804+0800 VivaLite[7297:1695311] templateSlider2222 : 0.269
2018-03-19 21:00:03.037670+0800 VivaLite[7297:1695311] templateSlider1111 : 0.292
2018-03-19 21:00:03.037833+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.055167+0800 VivaLite[7297:1695311] templateSlider1111 : 0.314
2018-03-19 21:00:03.055330+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.073753+0800 VivaLite[7297:1695311] templateSlider1111 : 0.342
2018-03-19 21:00:03.073972+0800 VivaLite[7297:1695311] templateSlider2222 : 0.342
2018-03-19 21:00:03.090166+0800 VivaLite[7297:1695311] templateSlider1111 : 0.370
2018-03-19 21:00:03.090385+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.104700+0800 VivaLite[7297:1695311] templateSlider1111 : 0.399
2018-03-19 21:00:03.105188+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.121126+0800 VivaLite[7297:1695311] templateSlider1111 : 0.427
2018-03-19 21:00:03.121283+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.139574+0800 VivaLite[7297:1695311] templateSlider1111 : 0.452
2018-03-19 21:00:03.139784+0800 VivaLite[7297:1695311] templateSlider2222 : 0.452
2018-03-19 21:00:03.157042+0800 VivaLite[7297:1695311] templateSlider1111 : 0.473
2018-03-19 21:00:03.157255+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.173506+0800 VivaLite[7297:1695311] templateSlider1111 : 0.495
2018-03-19 21:00:03.173713+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.190615+0800 VivaLite[7297:1695311] templateSlider1111 : 0.517
2018-03-19 21:00:03.190844+0800 VivaLite[7297:1695311] templateSlider2222 : 0.517
2018-03-19 21:00:03.204320+0800 VivaLite[7297:1695311] templateSlider1111 : 0.548
2018-03-19 21:00:03.204850+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.223696+0800 VivaLite[7297:1695311] templateSlider1111 : 0.578
2018-03-19 21:00:03.223902+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.239675+0800 VivaLite[7297:1695311] templateSlider1111 : 0.611
2018-03-19 21:00:03.240310+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.255625+0800 VivaLite[7297:1695311] templateSlider1111 : 0.641
2018-03-19 21:00:03.255774+0800 VivaLite[7297:1695311] templateSlider2222 : 0.641
2018-03-19 21:00:03.270745+0800 VivaLite[7297:1695311] templateSlider1111 : 0.669
2018-03-19 21:00:03.270859+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.288238+0800 VivaLite[7297:1695311] templateSlider1111 : 0.691
2018-03-19 21:00:03.288352+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.304407+0800 VivaLite[7297:1695311] templateSlider1111 : 0.714
2018-03-19 21:00:03.304618+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.320181+0800 VivaLite[7297:1695311] templateSlider1111 : 0.736
2018-03-19 21:00:03.320342+0800 VivaLite[7297:1695311] templateSlider2222 : 0.736
2018-03-19 21:00:03.337332+0800 VivaLite[7297:1695311] templateSlider1111 : 0.752
2018-03-19 21:00:03.337417+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.353651+0800 VivaLite[7297:1695311] templateSlider1111 : 0.766
2018-03-19 21:00:03.353742+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.371080+0800 VivaLite[7297:1695311] templateSlider1111 : 0.772
2018-03-19 21:00:03.371196+0800 VivaLite[7297:1695311] templateSlider2222 : 0.772
2018-03-19 21:00:03.390947+0800 VivaLite[7297:1695311] templateSlider1111 : 0.777
2018-03-19 21:00:03.391106+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.406980+0800 VivaLite[7297:1695311] templateSlider1111 : 0.779
2018-03-19 21:00:03.407097+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.420120+0800 VivaLite[7297:1695311] templateSlider1111 : 0.781
2018-03-19 21:00:03.420216+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.453253+0800 VivaLite[7297:1695311] templateSlider1111 : 0.781
2018-03-19 21:00:03.453353+0800 VivaLite[7297:1695311] templateSlider2222 : 0.781
2018-03-19 21:00:03.470227+0800 VivaLite[7297:1695311] templateSlider1111 : 0.781
2018-03-19 21:00:03.470324+0800 VivaLite[7297:1695311] click too fast now
2018-03-19 21:00:03.487173+0800 VivaLite[7297:1695311] templateSlider1111 : 0.772

iPhone 6,间隔0.1s

2018-03-19 21:07:43.322574+0800 VivaLite[7318:1698461] templateSlider1111 : 0.130
2018-03-19 21:07:43.322943+0800 VivaLite[7318:1698461] templateSlider2222 : 0.130
2018-03-19 21:07:43.339668+0800 VivaLite[7318:1698461] templateSlider1111 : 0.128
2018-03-19 21:07:43.339841+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.406331+0800 VivaLite[7318:1698461] templateSlider1111 : 0.128
2018-03-19 21:07:43.406535+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.424621+0800 VivaLite[7318:1698461] templateSlider1111 : 0.131
2018-03-19 21:07:43.425226+0800 VivaLite[7318:1698461] templateSlider2222 : 0.131
2018-03-19 21:07:43.443287+0800 VivaLite[7318:1698461] templateSlider1111 : 0.146
2018-03-19 21:07:43.443509+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.458177+0800 VivaLite[7318:1698461] templateSlider1111 : 0.169
2018-03-19 21:07:43.458390+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.474857+0800 VivaLite[7318:1698461] templateSlider1111 : 0.199
2018-03-19 21:07:43.475393+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.493027+0800 VivaLite[7318:1698461] templateSlider1111 : 0.238
2018-03-19 21:07:43.493229+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.507813+0800 VivaLite[7318:1698461] templateSlider1111 : 0.284
2018-03-19 21:07:43.508290+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.525029+0800 VivaLite[7318:1698461] templateSlider1111 : 0.339
2018-03-19 21:07:43.525246+0800 VivaLite[7318:1698461] templateSlider2222 : 0.339
2018-03-19 21:07:43.542272+0800 VivaLite[7318:1698461] templateSlider1111 : 0.395
2018-03-19 21:07:43.542493+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.559304+0800 VivaLite[7318:1698461] templateSlider1111 : 0.453
2018-03-19 21:07:43.559520+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.573798+0800 VivaLite[7318:1698461] templateSlider1111 : 0.512
2018-03-19 21:07:43.574006+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.591655+0800 VivaLite[7318:1698461] templateSlider1111 : 0.570
2018-03-19 21:07:43.591867+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.609444+0800 VivaLite[7318:1698461] templateSlider1111 : 0.628
2018-03-19 21:07:43.609665+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.622374+0800 VivaLite[7318:1698461] templateSlider1111 : 0.681
2018-03-19 21:07:43.622571+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.639283+0800 VivaLite[7318:1698461] templateSlider1111 : 0.724
2018-03-19 21:07:43.639452+0800 VivaLite[7318:1698461] templateSlider2222 : 0.724
2018-03-19 21:07:43.658281+0800 VivaLite[7318:1698461] templateSlider1111 : 0.766
2018-03-19 21:07:43.658491+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.673879+0800 VivaLite[7318:1698461] templateSlider1111 : 0.801
2018-03-19 21:07:43.674044+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.689453+0800 VivaLite[7318:1698461] templateSlider1111 : 0.834
2018-03-19 21:07:43.689671+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.706020+0800 VivaLite[7318:1698461] templateSlider1111 : 0.864
2018-03-19 21:07:43.706178+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.723893+0800 VivaLite[7318:1698461] templateSlider1111 : 0.885
2018-03-19 21:07:43.724102+0800 VivaLite[7318:1698461] click too fast now
2018-03-19 21:07:43.742062+0800 VivaLite[7318:1698461] templateSlider1111 : 0.905
2018-03-19 21:07:43.742286+0800 VivaLite[7318:1698461] templateSlider2222 : 0.905
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容