我在故事板中绘制了 3 个 UILabel,它们位于彼此之上。
静态 UI 标签 1
动态 UI 标签 2
静态 UI 标签 3
标签 1 和 3 是静态的,永远不会改变。标签 2 是动态的,并且总是一个句子长,但可以是一个短句或长句。我希望标签 2 根据有多少文本在标签 1 和标签 3 之间完全垂直居中。任何想法如何做到这一点?非常感激!
将 Label1 和 Label3 的中心值相加,除以 2 使其成为 label2 的中心
CGPoint point = CGPointMake(Label2.Center.x,(Label1.center.y+Label3.center.y)/2);
Label2.center = point;
就这样....
如果您使用的是自动布局(默认情况下启用),那么您可以拉伸中间标签,直到它的顶部和底部与其他两个标签的标准距离为标准距离(当您到达该位置时,您会看到一条蓝色虚线距离)。这假设您的标签具有清晰的背景,或者您不介意看到一个高大的标签(如果没有的话)。无论行数如何,文本都将在此高标签中垂直居中。它也将保持以旋转为中心。