IOS - 以编程方式向TableView Prototype Cell添加其他UI元素

时间:2013-07-22 20:01:41

标签: ios storyboard prototype tableview

我使用Master Detail模板(iPhone)在Xcode的Storyboard构建器中创建了一个带有按钮和标签的简单原型单元格。现在我需要知道如何以编程方式在单元格中添加其他标签或其他UI元素。请指教......谢谢。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    TSTest *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell2" forIndexPath:indexPath];

    NSDate *object = _objects[indexPath.row];

    cell.textLabel1.text = [object description];

    return cell;
}

2 个答案:

答案 0 :(得分:1)

问题是你想要这样做的原因。你可以做到,但首先考虑为什么。为不同目的创建不同的原型单元是否更好,然后您可以在运行时选择使用哪个单元格并将所有单元格的布局设置在同一位置(故事板)。

也就是说,当您将单元格出列时,可以添加所需的任何子视图。如何处理新旧子视图的位置取决于您是否启用了自动布局。每次出列单元格时,您还应该检查它是否包含您之前添加的子视图(然后重复使用或删除它们)。

答案 1 :(得分:0)

简单的方法是以编程方式创建所有内容。但这就是你的情况。

static NSString *TableViewCellIdentifier = @"Cell2";
if (myCustomCellView == nil){
            myCustomCellView = [[UITableViewCell alloc]
                          initWithStyle:UITableViewCellStyleDefault
                          reuseIdentifier:TableViewCellIdentifier];    
    //Creating my custom lable - myLable

    CGRect myFrame = CGRectMake(10.0, 0.0, 100, 25.0);
    myLabel = [[UILabel alloc] initWithFrame:myFrame];
    myLabel.backgroundColor = [UIColor clearColor];
    [myCellView.contentView addSubview:myLabel];
}
SomeDictionary *someDictionaryOrWhatEver = [[SomeDictionary alloc] init];
someDictionaryOrWhatEver = [self.someKindOfList objectAtIndex:indexPath.row];
myLabel.text = [NSString stringWithFormat:@"%@" , someDictionaryOrWhatEver.someKeyValue;

希望有所帮助。

有关更多信息,请访问以下链接: http://jslim.net/blog/2013/03/22/ios-create-uitableview-with-custom-cell-programmatically/ http://www.appcoda.com/customize-table-view-cells-for-uitableview/ http://code.tutsplus.com/tutorials/ios-sdk-crafting-custom-uitableview-cells--mobile-15702 干杯