【问题标题】:UISwitch not displaying in custom UITableView CellUISwitch 未显示在自定义 UITableView 单元格中
【发布时间】:2015-08-12 10:24:04
【问题描述】:

我需要一个带有label 和switch 的自定义cell。 现在,主要问题是我无法显示switch。我尝试了几种方法,包括以编程方式将switch 添加到单元格的accessoryView。

我使用了 IB,将switch 添加到单元格中,连接了IBOutlet。我还尝试在单元格的awakeFromNib 中以编程方式添加switch:

- (void)awakeFromNib {
    [super awakeFromNib];
    if (!self.fieldSwitch) {
        self.fieldSwitch = [[UISwitch alloc] init];
        [self.fieldSwitch addTarget:self action:@selector(switchUpdatedValue:) forControlEvents:UIControlEventValueChanged];
        self.fieldSwitch.onTintColor = [ColorManager sharedInstance].genericSwitchColor;
        self.accessoryView = self.fieldSwitch;
    }
}

这完全没有效果;我还尝试将其作为子视图添加到单元格的contentView,然后调用bringSubviewToFront:。同样,没有成功。

我查了一下,self、accessoryView、fieldSwitch 都不是nil。

有没有人知道哪里出了问题?顺便说一句,有谁明白为什么默认情况下从IB 添加控件会被破坏?

【问题讨论】:

  • 您是否尝试将其添加到 cellForRowAtIndexPath 中?
  • 是的,没有任何变化。更令人沮丧的是,我不明白为什么从 IB 添加的控件不显示。

标签: ios uitableview uiswitch


【解决方案1】:

如果您使用大小类,则必须为 UISwitch 设置约束。例如,如果您使用的是 Any Any 大小类,并且您将 UISwitch 放在单元格中,它实际上可能显示在远离右侧的位置。 (我会将此作为评论发布,但没有足够的代表)

【讨论】:

  • 你是对的。 tableView 被放置在 UIViewController 中,忘记将 tableView 边缘固定到 superview 边缘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2012-06-06
相关资源
最近更新 更多