<iOS>一个开发中值得注意的细节

UIScrollView有一个属性叫做scrollToTop,是个BOOL值,默认为YES。

它的作用是定义当前的这个UIScrollView的delegate<UIScrollViewDelegate>在接收到点击状态条消息时候要不要进行返回顶部的操作。

好的,那么一个问题是,当当前的VC上有多个UIScrollView及其子类的时候,会使得所有UIScrollView都收不到回到顶部的消息。

一般情况下我们VC上添加了多个ScrollView或者TableView我们是知道的,只需要在同一时间仅仅设置其中一个ScrollView的scrollToTop=YES;另外其他ScrollView的scrollToTop=NO;就可以完美的解决了这个问题,而且代码可以都在当前这个VC中,很容易管理。

但是会有意外出现,假如我当前这个TableView的Cell上是有一个UIScrollView或者其子类的,这时候VC不能响应对应的点击,而且由于UISCrollView的创建代码可能在View中而不在VC中,比较难以发现。

这时候我们就需要保持一个习惯,当我在View层创建一个UIScrollView的对象或者其子类对象的时候,我们一定要设定其scrollToTop=NO。

那么可能说我点击状态栏的响应就是要在这个控件上实现的怎么办?特殊情况特殊处理,有需求时候把这部分实现相关代码再在VC里面再写一次会让你的代码好维护许多。

原文地址:https://www.cnblogs.com/robinkey/p/4917635.html