swift - 如何使用框架在 Swift 循环中设置 x 位置

标签 swift frame

我有一个数组,计数在 1 到 3 之间变化。 我想将它们框在屏幕中间一定距离 标签的宽度也是固定的

let array = ["some1", "some2", "some3"]

func setLabel(){
  var i = -1
  for text in array{
      i += 1
      let label = UILabel()
      label.fram = CGRect(x: screenWidth/2 - (CGFloat(i)*50) + 25, y: 100, width: 50 , height: 20)
      label.text = text
      addSubview(label)
  }
}

enter image description here

最佳答案

您可以按照 @matt 的建议使用堆栈 View .如果你不想使用 stackview,你可以像这样通过数组计数和标签索引计算 x 位置

let array = ["some1", "some2", "some3"]
func setLabel(){
    var i:CGFloat = 0
    for text in array{
        i += 1
        let label = UILabel()
        label.backgroundColor = .red
        label.frame = CGRect(x: (view.bounds.width/CGFloat(array.count+1))*i-25, y: 100, width: 50 , height: 20)
        label.text = text
        view.addSubview(label)
    }
}

关于swift - 如何使用框架在 Swift 循环中设置 x 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56386677/

相关文章:

ios - 取消firebase功能

ios - 编译应用程序后,启动时传递的环境变量和参数不起作用

arrays - Swift,字符串检查

ios - 何时获得正确的帧大小

android - OpenCv4Android : frame masking by an image

xcode - 为什么 UIBarButtonItem 图像总是模糊/模糊/像素化

ios - 刷新 token AWS Cognito用户池,代码块甚至没有运行

iphone - iPhone 中旋转后 UIView 框架的奇怪行为

ios - 使用 addSubView 将 View 添加到另一个 View 后调整 View 大小

uiview - ios 7 UiView框架问题