如何在视图中垂直居中两个UILabel(动态高度),如Label1(2行,截断)和Label2(1行,截断):
+------------------------------------------+
| |
| |
|Label1 Label1 Label1 Label1 Label1 Label1 |
|Label1 Label1 Label1 Label1 Label1 ... |
|Label2 Label2 Label2 Label2 Label2 ... |
| |
| |
+------------------------------------------|
我想单个UILabel和NSAttributedString(截断2行的一部分,1行的另一部分)是不可能的。
答案 0 :(得分:0)
您可以在视图中看到标签框确实出现并再次在屏幕上替换它们。我之前尝试过它并且有效。你可能还需要调用setNeedsDisplay。
- (void)viewDidAppear:(BOOL)animated {
float heights = lbl1.frame.size.height + lbl2.frame.size.height;
lbl1.frame = CGRectMake( lbl1.frame.origin.x, screenheight/2 - heights/2, lbl1.frame.size.width, lbl1.frame.size.height );
lbl2.frame = CGRectMake( lbl2.frame.origin.x, screenheight/2 - heights/2 + lbl1.frame.size.height, lbl2.frame.size.width, lbl2.frame.size.height );
[lbl1 setNeedsDisplay];
[lbl2 setNeedsDisplay];
}
答案 1 :(得分:0)
如果使用自动布局,可以将两个标签嵌入到父UIView中,然后使用约束将父UIView垂直居中于其超级视图中。