我在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中的错误?
答案 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;
}
}