在UITableViewCell中,新的IOS5 UISwitch看起来没有禁用

时间:2011-11-23 17:01:23

标签: iphone ios uiswitch ios5

我在UISwitch s中放置UITableViewCell es,我最初尝试禁用它:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    self.switch = [[UISwitch alloc] init];
    self.switch.enabled = NO;
    cell.accessoryView = self.switch;
    ...
}

在IOS5之前的IOS版本中,(旧视)开关被禁用,并且在视图出现时也会被禁用(变暗)。

在IOS5中,(新的)开关被禁用,我无法翻转,但在此阶段它看起来没有禁用。它与启用的开关具有相同的亮度。

如果我稍后在代码中启用并重新禁用它(不在cellForRowAtIndexPath:回调中),它看起来会被禁用(变暗)。

我做错了什么或者这是IOS5中的错误?

3 个答案:

答案 0 :(得分:3)

UISwitch指定的初始化程序是-initWithFrame: - 您是否尝试过使用它?

答案 1 :(得分:2)

我遇到了与iOS 5相同的问题。您可以使用-initWithFrame创建开关,然后您可以将开关添加为单元格内容的子视图和(不是附件视图,不要忘记计算contentView的子视图,否则你可以用-addSubview:方法添加一个新的uiswitch。

答案 2 :(得分:0)

我遇到了同样的问题,我通过将所有UISwitch保存在一个数组中来解决它。

然后在我的 viewDidAppear 上,我遍历数组,禁用它们。

- (void)viewDidAppear:(BOOL)animated {
    for (UISwitch *switchView in switchMArray) {
        switchView.enabled = NO;
    }
}