UITableViewCell 中看起来很奇怪的 UISwitch
Weird looking UISwitch in UITableViewCell
我将 UISwitch 作为子视图添加到 UITableViewCell 的 contentView 并将 isOn 设置为 true。切换后就变成了下面这个,看起来怪怪的
有谁知道为什么会发生这种情况以及如何解决这个问题?
奇怪的 UISwitch:
https://dl.dropboxusercontent.com/u/43497092/Whosebug/Screen%20Shot%202015-06-12%20at%209.28.43%20AM.png
作为对比,一个普通的 UISwitch 应该是这样的:
普通UISwitch:
https://dl.dropboxusercontent.com/u/43497092/Whosebug/Screen%20Shot%202015-06-12%20at%209.32.43%20AM.png
发生这种情况是因为我每次调用 "layoutSubviews" 时都会添加一个新开关。当开关的值发生变化时,将在前一个开关之上添加一个新开关。
解决方法是将之前的switch从super view中移除,然后将新的switch添加到view中。
您确实希望您的开关成为您自定义 UITableViewCell
class 的一部分,并作为单元实例化的一部分创建。然后,您可以通过出列单元格的 属性 访问交换机。
layoutSubviews
不是添加控件的地方。您可能甚至不需要覆盖它,因为自动布局约束可以处理开关的布局。
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
并定义单元格值何时等于零。
那么switch就不会这样了
我将 UISwitch 作为子视图添加到 UITableViewCell 的 contentView 并将 isOn 设置为 true。切换后就变成了下面这个,看起来怪怪的
有谁知道为什么会发生这种情况以及如何解决这个问题?
奇怪的 UISwitch: https://dl.dropboxusercontent.com/u/43497092/Whosebug/Screen%20Shot%202015-06-12%20at%209.28.43%20AM.png
作为对比,一个普通的 UISwitch 应该是这样的:
普通UISwitch: https://dl.dropboxusercontent.com/u/43497092/Whosebug/Screen%20Shot%202015-06-12%20at%209.32.43%20AM.png
发生这种情况是因为我每次调用 "layoutSubviews" 时都会添加一个新开关。当开关的值发生变化时,将在前一个开关之上添加一个新开关。
解决方法是将之前的switch从super view中移除,然后将新的switch添加到view中。
您确实希望您的开关成为您自定义 UITableViewCell
class 的一部分,并作为单元实例化的一部分创建。然后,您可以通过出列单元格的 属性 访问交换机。
layoutSubviews
不是添加控件的地方。您可能甚至不需要覆盖它,因为自动布局约束可以处理开关的布局。
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
并定义单元格值何时等于零。 那么switch就不会这样了