Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当detailTextLabel变为多行时,TextLabel向上移动_Ios_Objective C_Uitableview_Frame_Detailtextlabel - Fatal编程技术网

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

Ios 当detailTextLabel变为多行时,TextLabel向上移动,ios,objective-c,uitableview,frame,detailtextlabel,Ios,Objective C,Uitableview,Frame,Detailtextlabel,我目前正在制作一个应用程序,用户选择一个MKMapView注释,然后将注释标题(pin)设置为右侧细节UITableViewCell中的detailtexlabel。 我的问题是,当文本较大时,detailTextLabel会变成多行。发生这种情况时,单元格(左侧的单元格)的TextLabel向上移动。以下是我尝试过的: 在cellForRowAtIndexPath方法中,我尝试通过以下代码调整帧: CGRect frame=cell.textLabel.frame frame.origin

我目前正在制作一个应用程序,用户选择一个
MKMapView
注释,然后将注释标题(pin)设置为右侧细节
UITableViewCell
中的
detailtexlabel
。 我的问题是,当文本较大时,
detailTextLabel
会变成多行。发生这种情况时,单元格(左侧的单元格)的
TextLabel
向上移动。以下是我尝试过的:

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

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

    cell.textlab.frame=frame

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

  • 对单元格进行子类化,然后尝试在
    -(void)布局子视图中调整框架


如何阻止字体向上移动并将其保持在单元格中心?

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

cell.detailTextLabel.adjustFontSizeToWidth=是; 并将numberOfLines设置为0


希望这能解决问题。

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

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

  • 标题标签根本不会移动
  • 详图文本标签也将是多行的
  • 这样你就能解决这个问题了