iPhone:在自定义单元中同时更改多个段控制器的状态
我有一个带有自定义单元格的 tableView(见下图)。
以三行表为例,如果用户将第 0 行中的段控制器更改为“是”,我可以自动更改第 1 行和第 1 行中的段控制器吗? 2 至“否?”
我正在使用以下内容来检测段更改:
- (void)seg_changed:(id) sender {
cell=(switchCell*) [[sender superview] superview];
UITableView *table=(UITableView*) [cell superview];
NSIndexPath *path=[table indexPathForCell:cell];
NSLog(@"been pressed %d si %d",path.section, path.row);
}
非常感谢。
I have a tableView with the custom cell (see image below.)
Taking a three row table as an example, if a user changes segment controller in row 0 to "Yes," can I automatically change the segment controllers in rows 1 & 2 to "No?"
I am using the following to detect a segment change:
- (void)seg_changed:(id) sender {
cell=(switchCell*) [[sender superview] superview];
UITableView *table=(UITableView*) [cell superview];
NSIndexPath *path=[table indexPathForCell:cell];
NSLog(@"been pressed %d si %d",path.section, path.row);
}
Much appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在此方法中,您只需告诉其他段控制器将其值设置为“NO”即可。困难的部分是弄清楚另外两个控件在哪里。你必须努力追踪它们。
如果您的设计确保始终有两个以上带有分段控件的单元格,您只需通过增加
path.row
值即可访问正确的单元格。此更改可以告诉您的数据模型某个值已更改,模型对象然后更新关联的值,并通知显示这些其他值的单元格。
您可以向此单元格类添加一个数组,以跟踪应通过此更改修改哪些其他单元格。
编辑:(回复评论)要更改分段控件上显示的设置,只需将
UISegmentedControl
的属性selectedSegmentIndex
设置为适当的值即可价值。 “是”应为 0,“否”应为 1。In this method you call just tell those other segment controllers to set their values to "NO". The hard part is figuring out where those two other controls are. You have to do the hard work of tracking them.
If your design ensures there are always two more cell with segmented controls you can just access the correct cells by incrementing the
path.row
value.This change can tell your data model that a value has changed, the model object then updates the associated values, and notifies the cells displaying those other values.
You can add an array to this cell class that keeps track of what other cells should be modified with this change.
Edit: (to respond to a comment) To change the setting displayed on the segmented control just set the property
selectedSegmentIndex
of theUISegmentedControl
to the appropriate value. "Yes" should be 0, and "No" should be 1.