在UITableViewCell中看起来很奇怪的UISwitch

时间:2015-06-12 18:00:10

标签: ios uitableview uiswitch

我将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

3 个答案:

答案 0 :(得分:0)

这是因为我每次在" layoutSubviews"时添加一个新的开关。叫做。当交换机的值发生变化时,会在上一个交换机的顶部添加一个新的交换机。

解决方案是从超级视图中删除先前的开关,然后将新开关添加到视图中。

答案 1 :(得分:0)

您真的希望您的交换机成为自定义UITableViewCell类的一部分,并作为单元实例化的一部分创建。然后,您可以通过出列单元格的属性访问交换机。

layoutSubviews不是添加控件的地方。您可能甚至不需要覆盖它,因为自动布局约束可以处理交换机的布局。

答案 2 :(得分:0)

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

并定义何时单元格值等于nil。 然后,切换不会那样。