在UIView中定位文本

时间:2016-05-18 07:43:12

标签: ios autolayout interface-builder

我需要在UIView中显示一些我使用label的文本。我正在使用xib文件。我需要的是对齐方式:

  1. 在视图中水平,垂直居中标签
  2. 最大宽度。 (假设屏幕宽度为500,我希望标签为200.但如果屏幕宽度小于200,那么它将从左视图边缘到右视图边缘。)
  3. 最大高度应为自动。如果屏幕上没有足够的文本空间应该是屏幕高度减去它与底部视图边缘之间的一些固定空间(如果可能的话,宽度也可以扩展)。标签下方的按钮需要底部的空间。
  4. 有可能这样做吗?我没有足够的界面构建经验。

2 个答案:

答案 0 :(得分:2)

1)对标签应用所需的autolayout并取3个NSLayoutConstraint IBOutlets属性,它们是1)标签宽度2)标签高度3)标签y Origin。

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 *(buttonHeight + spacing);            self.lblHeighthConstraint.constant = height;

4)计算标签Y Orgin 比方说标签Y Origin Constraint Name是:lblHeighthYorigin

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

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

答案 1 :(得分:1)

使用中心的alignement限制 使用Aspect Ration作为大小 - >设置宽高比=宽度的百分比和最大宽度200px

使用SizeClass为小于500px的屏幕设置另一个约束尺寸。 你有很多时候屏幕尺寸不同的布局。