UITableViewCell accessoryType不适用于Xcode 6.0.3

时间:2014-10-15 23:09:36

标签: ios objective-c iphone

我正在测试一个非常简单的应用。我有一个tableview,其中包含以下用于设置单元格的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"MyBasicCell"];
    cell.textLabel.text=[phones objectAtIndex:indexPath.row];
    cell.accessoryType = UITableViewCellAccessoryDetailButton;

    return cell;
}

我在UIViewController中使用了UITableView。我尝试了所有类型的accessoryType但没有显示。 我试图创建另一个类,它是UITableViewController的子类,它工作正常(与上面相同的源代码)。 这是Xcode 6中的错误还是Apple开始放弃Objective C?
更新:Here是整个项目。

4 个答案:

答案 0 :(得分:2)

最后我发现了原因。我正在使用自动布局,我不熟悉自动布局,所以我无法正确设置(我猜)。所以我禁用了autolayout(和size Classes)并调整了tableview的自动调整大小,它适用于iPhone 4“,4.7”和5.5“。

以下是插图: enter image description here

enter image description here

答案 1 :(得分:1)

你必须开始你的细胞。例如:

static NSString *cellIdentifier = @"cellID";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (!cell)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}

答案 2 :(得分:0)

我遇到同样的问题,我的解决方法是在“viewDidAppear”中设置配件类型。

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    UITableViewCell *c = [yourTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
    [c setAccessoryType:UITableViewCellAccessoryCheckmark];
}

它对我有用。

答案 3 :(得分:0)

如果您正在使用Autolayout,请务必设置表格视图的边距