我将UISwitch添加为UITableViewCell的contentView的子视图,并将isOn设置为true。切换后,它变成了以下,看起来很奇怪。
有谁知道为什么会发生这种情况以及如何解决这个问题?
奇怪的UISwitch: https://dl.dropboxusercontent.com/u/43497092/stackOverflow/Screen%20Shot%202015-06-12%20at%209.28.43%20AM.png
为了进行比较,看起来很正常的UISwitch看起来像这样:
正常的UISwitch: https://dl.dropboxusercontent.com/u/43497092/stackOverflow/Screen%20Shot%202015-06-12%20at%209.32.43%20AM.png
答案 0 :(得分:0)
这是因为我每次在" layoutSubviews"时添加一个新的开关。叫做。当交换机的值发生变化时,会在上一个交换机的顶部添加一个新的交换机。
解决方案是从超级视图中删除先前的开关,然后将新开关添加到视图中。
答案 1 :(得分:0)
您真的希望您的交换机成为自定义UITableViewCell
类的一部分,并作为单元实例化的一部分创建。然后,您可以通过出列单元格的属性访问交换机。
layoutSubviews
不是添加控件的地方。您可能甚至不需要覆盖它,因为自动布局约束可以处理交换机的布局。
答案 2 :(得分:0)
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
并定义何时单元格值等于nil。 然后,切换不会那样。