【问题标题】:UISwitch and UISegmentedControl disappear in cell on iOS 8.1.1UISwitch 和 UISegmentedControl 在 iOS 8.1.1 的单元格中消失
【发布时间】:2015-01-23 05:16:48
【问题描述】:

在 iOS 8.1.1 和 8.1.2 (iPhone 6) 上使用我的应用程序时遇到一个奇怪的问题。我的菜单单元格中的某些组件(UISwitchUISemgentedControl)消失了。 我无法在模拟器上重现它,因为我没有在 xcode 6.1 或 6.1.1(GM 种子)上找到 iOS 8.1.1 sim,它在 iOS 8.1(模拟器和设备)上运行良好

在我的UITableView 中,我得到了许多不同的单元格类型,我在tableview:CellForRow:AtIndexPath: 中像这样加载它们

[[NSBundle mainBundle] loadNibNamed:@"SubMenuCellSwitch" owner:self options:nil];

[[NSBundle mainBundle] loadNibNamed:@"SubMenuCellSegment" owner:self options:nil];

我在单元格的 xib 中使用自动布局,但如果我删除它,我仍然会遇到同样的问题。 除了 switch 和 segmentedControl 之外,我的单元格的每个子视图都是可见的(UIImageViewUILabel)!

有人在 iOS 8.1.1 上遇到过类似的问题吗?或者有一个可能的答案?

【问题讨论】:

    标签: ios iphone uitableview uisegmentedcontrol uiswitch


    【解决方案1】:

    错误似乎是从 iOS 8.1.1 开始,我没有输入我的 if 语句之一。

    NSNumber 对象的强制转换失败。

    调试时,我在 iOS 8.1 上得到了这个:

    (lldb) po quality
    {
        segment = 1;
        title = "Quality";
    }
    (lldb) p (BOOL)[quality valueForKey:@"segment"]
    (BOOL) $0 = YES
    (lldb) p (BOOL)[[quality valueForKey:@"segment"] boolValue]
    (BOOL) $1 = YES
    

    但这是我在 iOS8.1.1 上得到的结果

    (lldb) po quality
    {
        segment = 1;
        title = "Quality";
    }
    (lldb) p (BOOL)[quality valueForKey:@"segment"]
    (BOOL) $2 = NO
    (lldb) p (BOOL)[[quality valueForKey:@"segment"] boolValue]
    (BOOL) $3 = YES
    

    我的if 声明是:

    if ([quality valueForKey:@"segment"]) {
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 2016-11-20
      • 1970-01-01
      • 2013-04-19
      • 2012-11-01
      • 2023-03-25
      • 2015-01-31
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多