自定义UITableViewCell与图像和标签

时间:2016-05-27 08:59:37

标签: ios uitableview

我有一些TableView使用基本或副标题UITableViewCell并显示图像/图标。分隔线自动缩进并从标签显示的位置开始。到现在为止还挺好。 (see correct behavior

现在我需要更多标签和图像。因此,我创建了一个包含4个标签的自定义TableViewCell。没有图像,它们按预期工作。但是当我将图像添加到现有标准ImageView时,会显示图像,分隔线会缩进,但自定义标签不会。它们覆盖了图像。 (see wrong behavior

我是否还必须创建自定义ImageView以使其正常工作以及分隔线如何以这种方式缩进,或者是否还有其他可能/现有技术可以做类似的事情?

2 个答案:

答案 0 :(得分:0)

<强> 1。首先创建所有四个自定义元素的出口,如标签和图像视图: - lblOne,lblTwo,lblThree,imageView。

<强> 2。然后去查看Viewdidload并创建一个字典: -

NSDictionary *viewsDictionary = @{@" @"superview":self.view,
                                      @"lblOne":self.lblOne,
                                      @"lblTwo":self.lblTwo,
                                      @"lblThree":self.lblThree,
                                      @"imageView":self.imageView
                                      };

第3。现在以编程方式添加Autolayout约束: -

 NSArray *lblOutletCenterConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[superView]-(<=1)-[lblOne]" options:NSLayoutFormatAlignAllCenterX metrics:nil views:viewsDictionary];

    [self.view addConstraints:lblOutletCenterConstraint];

NSArray *lblOutletCenterConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[superView]-(<=1)-[lblTwo]" options:NSLayoutFormatAlignAllCenterX metrics:nil views:viewsDictionary];

    [self.view addConstraints:lblOutletCenterConstraint];

NSArray *captionTopConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[lblOne]-25-[imageView]" options:0 metrics:nil views:viewsDictionary];

    [self.view addConstraints:captionTopConstraint];

NSArray *captionTopConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[lblTwo]-25-[lblThree]" options:0 metrics:nil views:viewsDictionary];

    [self.view addConstraints:captionTopConstraint];

<强> 4。或者你也可以通过故事板来做到这一点。

答案 1 :(得分:0)

我最终得到的解决方案是我创建了一个空的Interface Builder文档,添加了TableViewCell,将LabelImageView放在上面,设置约束,将所有内容连接到对应的* .swift文件。完。我希望重用默认ImageView中的TableViewCell,但显然无效(或者我太愚蠢)。