我有一个带有UITableView的ViewController,其中包含自定义UITableViewCell子类。
我正在处理的项目基于Master / Detail视图控制器模板(来自XCode 6的模板)。
我注意到的事情:
这是我观察到的当前生命周期:
我在UITableViewCell的子类的两个方法上添加了一个NSLog来观察它。
编辑:我的问题是我在自定义单元格中有一个UISlider。当dealloc get被调用时,更新的滑块值就在那里(例如10),但在UI上它确实显示了通过界面构建器设置的初始值(例如说1)。我假设在调用dealloc后再次设置(恢复)默认值。有没有办法避免这种情况?
答案 0 :(得分:0)
UIKit处理dealloc的方式是完全不透明的;我怀疑你会发现很多人已经看到它的实现,并愿意向你展示。因为我们没有很好的方法来了解引擎盖下究竟发生了什么,所以很难判断你所看到的是正常行为还是奇怪的行为。话虽这么说,有一些方法可以用来配置单元格,因为它将被显示以适当地设置滑块的值。根据我的经验,最好的方法是在cellForRowAtIndexPath中设置滑块的值。在tableViewController调用dequeueReusableCellWithIdentifier:forIndexPath之后,在UITableViewCell子类上公开一个方法,根据数据源设置滑块的值。如果在此处设置了滑块的值后,它仍然默认为故事板上的值,那么某些内容肯定无法正常工作,我们需要查看更多代码以确定它的位置&#39 ;出错了。