如何创建具有多个字幕的UITableCell

时间:2013-05-19 12:40:17

标签: ios objective-c xcode cocoa-touch

我在网上看到了这个设计图片,我真的很困惑,我怎么能制作一个有多个字幕的UITableCell,并允许我按照图片所示的方式定制它们。

我的理解是每个单元只能使用1个字幕。

有没有办法创建一个看起来像这样的UITable单元?你将如何继续在小区标题下制作这4个字幕?

enter image description here

4 个答案:

答案 0 :(得分:1)

您可以通过为UITableViewCell提供自定义布局来轻松完成此操作。该视频可以帮助您完成此操作:

http://www.youtube.com/watch?v=d_kO-J3DYvc

基本上,您需要在storyboard / NIB文件中设计单元格的UI,并在那里为表格单元格添加多个标签。子类UITableViewCell并将其链接到storyboard / NIB中设计的UITableViewCell。在该类中为标签添加IBOulets,并将标签从UI链接到这些IBOutlet。

答案 1 :(得分:1)

从提供的图片看,原型UITableViewCell包含一个UIImageView和5个UILabel s。假设您正在使用IB或故事板来创建表格视图单元格,请将“表格视图样式”设置为“自定义”,而不是将UIImageView和5 UILabel拖到原型单元格上。对于每个UILabel,根据需要调整其位置,字体和字体大小。您可能还需要调整单元格的高度。

答案 2 :(得分:0)

只是UITableViewCell的子类,并添加多个UILabel。然后覆盖layoutSubviews方法以定位这些标签。然后在cellForRow中,确保实例化您的子类UITableViewCell。我没有时间检查这个,但子类看起来像:

    @interface CustomCell : UITableViewCell {
        UILabel *myCustomLabel1;
    }
    @end
    @implementation CustomCell

    - (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
        if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
            // Initialization code

            myCustomLabel1 = [[UILabel alloc] initWithFrame:CGRectZero];
            [self.contentView addSubview:myCustomLabel1];
        }
        return self;
    }

    -(void)layoutSubviews
    {
        [super layoutSubviews];
        float margin = 5;
        [myCustomLabel1 setFrame:CGRectMake(self.bounds.origin.x+margin, self.bounds.origin.y, self.bounds.size.width - (2*margin), self.bounds.size.height)];

    }

    @end

答案 3 :(得分:0)

嘿我已创建了一个关于自定义单元格的示例项目,请检查我创建的 github link 。我用过故事板。 这是示例应用程序的屏幕截图 enter image description here