我正在做一個類似的視圖查看聯繫人在Contacts.app,這意味着我有不同的領域不需要(第二個工作電話,第二封電子郵件等)不同部分(電話,電子郵件等)。不顯示空的分組單元tableview
當某些字段是空的,我不想顯示它們,當所有的字段下部分空,我不想顯示該節。此外,有些單元對它們有操作,就像在電話號碼單元上敲擊時一樣,它會調用顯示的號碼。目前,這些操作在didSelectRowAtIndexPath
中手動處理,具有基本ifs,具體取決於單元位置。
我不能找到一個很好的解決方案做了這一切......我嘗試字典數組(每個單元),每個部分,但事情很快就亂了。另外,由於行的順序絕不相同,我不能輕易地用if來處理基於單元位置的didSelectRowAtIndexPath
方法中的所有操作。
哦,我在引擎蓋下使用核心數據。
任何人都必須做同樣的事情,並願意分享他的想法嗎?
謝謝!使用indexPath區分風格和行爲
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (indexPath.section == 0)
{
// Custom actions here
}
else if (indexPath.section == 1)
{
// Other actions here
[self showMailComposeWithEmail:cell.textLabel.text];
}
}
而另一種方法:
現在我的靜態IFS設置的爲例分化細胞
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
if (indexPath.section == 0)
{
if (indexPath.row == 0)
{
cell.textLabel.text = self.contact.phone;
}
}
else if (indexPath.section == 1)
{
if (indexPath.row == 0)
{
cell.textLabel.text = self.contact.email;
}
}
return cell;
}
你可以展示在其中添加數據的代碼 – Dhara
你怎麼從那裏我添加數據意味着什麼? – allaire
您是否將數據添加到數組或字典? – Dhara