我在故事板中定義了三個原型單元格,每個單元格中包含一個UISegmentedControl
小部件。我有兩種標準來向用戶展示;一個是[ON|OFF]
另一個是。我需要設置每個小部件的文本,因此我在故事板中設置了小部件Tag
,以便使用[cell viewWithTag:XX]
從正確的原型單元獲取小部件。問題是,我所有的UISegmentedControl
小部件都連接到同一個監聽器,我無法告訴用戶打開或關閉哪個標準。我看過Tag
的值設置爲cellForRowAtIndexPath
中的行號,但我已經在故事板中使用了Tag
。如何判斷我的偵聽器正在與哪個行進行交互?使用dequeueReusableCellWithIdentifier時分配UItableView單元格標籤
UPDATE:代碼剪斷添加
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *retcell;
NSInteger thisrow = indexPath.row;
// retrieve the items which should be printed for this
// row. set text on widget depending on item type
OBJ_Items *items = [mCriteria objectForKey:thisrow];
if ([items.Type isEqualToString:YESNO])
{
retcell = [tableView dequeueReusableCellWithIdentifier:@"yesno"];
// get a handle to the widget in this cell in order to access it's Text property
UISegmentedControl *yesno = (UISegmentedControl *)[retcell viewWithTag:200];
// .. set text for yesno segments
// save the row numer to this object's tag so we can retrieve the item object
// on click
[yesno setTag:thisrow];
}
if ([items.Type isEqualToString:SETTING])
{
retcell = [tableView dequeueReusableCellWithIdentifier:@"setting"];
UISegmentedControl *setting = (UISegmentedControl *)[retcell viewWithTag:201];
// set text for segments...
[setting setTag:thisrow];
}
return (retcell);
}
爲什麼你使用標籤來識別原型單元格,你應該使用重用標識符爲該任務。 – ManicMonkOnMac
我不認爲我清楚地解釋了我的問題。我已經重新措辭並添加了一段代碼片段。請看一看。 – wufoo