UITableViewCell在iPhone和iPad上的工作方式不同

时间:2011-02-18 21:49:53

标签: iphone cocoa-touch uikit uitableview

似乎 setSelected:animated:在iPhone和iPad上的工作方式不同,即使在模拟器中也是如此。请考虑以下代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell.accessoryType == UITableViewCellAccessoryNone)  {
            //[cell setSelected:NO animated:YES]; works only on iPhone, but not on iPad
              [tableView deselectRowAtIndexPath:indexPath animated:YES]; //works everywhere
    return;
    }

    [self.navigationController pushViewController:someViewController animated:YES];

}

此行似乎仅适用于iPhone

[cell setSelected:NO animated:YES];

我想知道是否有人可以提供有关 setSelected:animated:方法限制的一些信息?

1 个答案:

答案 0 :(得分:0)

我认为,由于UITableViews并非真正用于在UISplitViewControllers之外使用,因此在iPad上进行了设计。

如果在viewControllers [0]中使用UITableView,请考虑在用户与viewControllers [1]中的UIViewController交互时如何保持选择UITableViewCell。

修改

我根本无法支持这一点......我在HIG中查了一下它并没有像我提到的那样。

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451