当detailTextLabel变为多行时,TextLabel会向上移动

时间:2014-01-12 18:00:56

标签: ios objective-c uitableview frame detailtextlabel

我正在创建一个应用程序,其中suer选择MKMapView注释,然后注释(pin)的标题设置为右侧详细信息detailtextLabel中的UITableViewCell。 我的问题是,当文本很大时,detailTextLabel变成多行。当发生这种情况时,单元格的TextLabel(左边的那个)会向上移动。继承人我尝试过的事情:

  • 在cellForRowAtIndexPath方法中,我尝试通过以下代码调整框架:
    CGRect frame = cell.textLabel.frame;

    frame.origin.y = cell.frame.size.height/2;

    cell.textLabel.frame = frame;

    其中,单元格是设置为右侧详细信息的UITableViewCell

  • 对单元格进行子类化并尝试调整-(void)layoutSubviews

  • 中的框架

如何阻止它上升并将其保持在牢房的中心?

2 个答案:

答案 0 :(得分:1)

如果要进行UITableViewCell的自定义布局,则需要将自定义UI元素添加到其-[UITableViewCell contentView],而不是尝试修改默认情况下创建的标准UI元素的几何。

因此,在您的情况下,您需要添加两个UILabel并设置其位置,以便:

  1. 标题标签根本不会移动
  2. 明细文字标签也将是多行
  3. 通过这种方式,您将能够解决这个问题!

答案 1 :(得分:0)

请尝试使字体大小可调整为文本。 我想你可以用,

cell.detailTextLabel.adjustFontSizeToWidth = Yes; 并且还将numberOfLines设置为0。

希望能解决目的。