当细胞高度增加时,如何将细胞标签的文本保持在顶部?

时间:2013-06-26 05:53:59

标签: ios objective-c uitableview

我在方法heightForRowAtIndexPath中增加了单元格的高度,因此label正在集中。 如何确保label仍然位于文本顶部,而不管行的高度如何?

6 个答案:

答案 0 :(得分:2)

在分配UITableViewCell时,您需要这样做..

UITableViewCell * cell;

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:string];

在使用样式初始化时:UITableViewCellStyleSubtitle将会出现。

希望这会有效..

答案 1 :(得分:1)

撰写以下代码:

UILabel *myLable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, width, height)];
[cell.contentView addSubView: myLable];

如果您希望myLable帧与myLable.text类似,则写入..

[myLable sizeToFit];

答案 2 :(得分:1)

你可以用两种方式做到这一点。

  1. 创建自定义标签并设置它的框架。

    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];
    [cell.contentView addSubView:lbl];
    
  2. 使用UITableViewCell子类并覆盖-layoutSubviews。在此方法中,您需要调用[super layoutSubviews]

    - (void)layoutSubviews {
        [super layoutSubviews];
    
        CGSize size = self.bounds.size;
        CGRect frame = CGRectMake(0.0f, 0.0f, size.width, size.height);
        self.textLabel.frame =  frame;
        self.textLabel.contentMode = UIViewContentModeScaleAspectFit;
     }
    

答案 3 :(得分:1)

您无法更改textlabel的位置,因为它是自动调整的。

第一个选项是你需要子类UITableViewCell并自定义textLabel框架。

另一个是您创建自己的自定义标签并使textlabel为零。因此,每当细胞的高度发生变化时,您的标签位置都不会改变。

答案 4 :(得分:0)

设置autolayout的{​​{1}} Top属性。

答案 5 :(得分:0)

试试这个:

将False设置为自定义单元格的“Autoresize Subviews”属性...