【问题标题】:Weird looking UISwitch in UITableViewCellUITableViewCell 中看起来很奇怪的 UISwitch
【发布时间】:2016-01-22 10:12:42
【问题描述】:

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

【问题讨论】:

  • 记得接受您的问题的答案(通过单击复选标记)。它可以帮助大家! :) 在 15 名代表中,您可以通过对有帮助的问题或答案进行投票来为网站做出贡献。

标签: ios uitableview uiswitch


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    发生这种情况是因为每次调用“layoutSubviews”时我都会添加一个新开关。当开关的值发生变化时,会在前一个开关之上添加一个新开关。

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

    【讨论】:

      【解决方案3】:
      static NSString *CellIdentifier = @"Cell";
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      

      并定义单元格值何时等于 nil。 那么,switch就不会这样了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-02
        • 1970-01-01
        • 2021-03-25
        • 2015-03-20
        • 2011-07-19
        • 2021-12-03
        • 1970-01-01
        相关资源
        最近更新 更多