在UIView中定位文本



我需要在UIView中显示一些使用标签的文本。我正在使用xib文件。我需要的对齐:

  1. 在视图中水平、垂直居中标签
  2. 最大宽度。(假设屏幕宽度为500,我希望标签为200。但如果屏幕宽度小于200,则将从左视图边缘边缘到右视图边缘边缘。)
  3. 最大高度应为自动。如果屏幕上没有足够的文本空间,则应为屏幕高度减去它和底部视图边缘之间的一些固定空间(如果可能的话,宽度也可以扩大)。底部的空间用于放置标签下的按钮

有可能做到这一点吗?我对界面生成器没有足够的经验。

1)为标签应用所需的自动布局,并获取3个NSLayoutConstraint IBOutlets属性,它们是1)标签宽度2)标签高度3)标签y原点。

2) 计算标签宽度假设标签宽度约束名称为:lblWidthConstraint

  **CGFrame screenFrame = [UIScreen mainScreen].bounds;**
     **if(screenframe.size.width>200){
      self.lblWidthConstraint.constant = 200;
     }else{
       self.lblWidthConstraint.constant = screenframe.size.width-6;//
     }**

3) 计算标签高度假设标签高度约束名称为:lblHeighthConstraint

根据标签固定宽度和固定文本找到标签高度,此处最大高度应为

CGFloat height=screenframe.size.height-2*(按钮高度+间距);self.lblHeighthConstraint.constant=高度

4) 计算标签Y Orgin假设标签Y原点约束名称为:lblHeighthYorigin

基于LabelHeight我们应该计算标签y原点

yOrign=screenframe.size.height-height/2;self.lblHeighthYorigin.stant=yOrign

使用中心的对齐约束
使用纵横比作为大小
->设置纵横比高度=宽度的%,最大宽度为200px

使用SizeClass为小于500px的屏幕设置另一个限制大小。只要屏幕大小不同,就可以多次使用。

最新更新