识别UITableViewCell内的UISegmentedControl

时间:2010-06-14 14:56:52

标签: iphone uitableview uisegmentedcontrol

我正在尝试在tableview中使用分段控件,然后当用户选择一个项目时,我想显示一个微调器,而一些信息发布到webservice。

我遇到的问题是:如何添加委托并访问引用的分段控件,以便将其设置为alpha或可见性为NO?另外,最好的做法是什么,我知道有标签,但不确定它们在这种情况下是如何工作的。

NSArray * segmentItems= [NSArray arrayWithObjects: @"one", @"two", @"three", @"four", @"five", nil];
UISegmentedControl *segmentedControl= [[[UISegmentedControl alloc] initWithItems: segmentItems] retain];
segmentedControl.segmentedControlStyle= UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex= -1;

[segmentedControl addTarget: self action: @selector(onSegmentedControlChanged:) forControlEvents: UIControlEventValueChanged];
segmentedControl.frame  = CGRectMake(2, 0, 300, 30);
segmentedControl.tintColor= [UIColor grayColor];

这是我的代表

 - (IBAction)onSegmentedControlChanged:(id)sender
{
    int clickedSegment= [sender selectedSegment];
}

如何从发件人访问UISegmentedControl,以便将可见性设置为Off?我总是可以设置我的对象,通过扩展它来填充我的segmentedControl,我只需要弄清楚如何获得对单元格和SegmentedControl的引用?

1 个答案:

答案 0 :(得分:0)

使用分段控件创建/返回单元格时,请在将单元格返回到表格之前设置委托对象。

编辑:

抱歉,误读了这个问题。传递给委托方法的sender将是您需要识别的实际UISegmentedControl实例。在委托方法中,将通用sender转换为UISegmentedControl`,然后根据需要设置其属性。

将选定的表行传递给tableview选择方法。