eem*_*bee 32 iphone uitableview uiswitch
我有一个简单的问题.我在Interface Builder中创建了一个包含UISwitch的自定义UITableViewCell.
问题1:更简单,更好的方法吗?问题2:在UITableViewController中使用时,获取数据的最佳方法是什么?在某些时候,我需要通过表格并检查每个单元格的状态,或者在开关状态直接变化时发送一些反馈?
谢谢您的帮助.
Sau*_*h G 85
您可以UISwitch
在附件视图中添加.这是最简单的方法,更不用说它看起来"优雅".
然后,在您的tableview控制器代码中,您可以在每次切换开关时调用选择器,甚至可以通过在控制器中获取开关的当前状态来切换开关本身.
如果您想要代码示例,请知道.
---示例代码---
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//add a switch
UISwitch *switchview = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = switchview;
[switchview release];
}
cell.textLabel.text = [NSString stringWithFormat:@"%d", indexPath.row];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用一种方法根据模型中的更改更新开关.你可以使用你想要的任何东西 - 代表,通知,KVO等.
例:
- (void)updateSwitchAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UISwitch *switchView = (UISwitch *)cell.accessoryView;
if ([switchView isOn]) {
[switchView setOn:NO animated:YES];
} else {
[switchView setOn:YES animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
Switch.tag = indexPath.row;
[Switch addTarget:self action:@selector(updateSwitchAtIndexPath:) forControlEvents:UIControlEventTouchUpInside];
- (void)updateSwitchAtIndexPath:(UISwitch *)aswitch{
FFLog(@"%i",aswitch.tag);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43213 次 |
最近记录: |