根据子项大小调整父UIView的大小

时间:2014-11-02 15:20:35

标签: ios uiview swift centering

我是iOS编程的新手,但仍然不知道如何正确处理这样的基本内容,所以我希望有人有好的做法可以分享。

我为用户创建了一个自定义键盘来回答问题。 这是一个包含一些UIButton的UIView。

enter image description here

如何将整个键盘置于中心位置?

我知道我可以通过累加每个键的宽度来计算键盘的宽度,但这对于这样一个简单的动作来说似乎相当复杂。

现在,这是我的代码(在Swift中),谢谢。

keyboardContainer = UIView(frame: CGRectMake(0, 0, self.frame.width, 200))
keyboardContainer!.center = CGPoint(x: keyboardContainer!.frame.width / 2, y: self.frame.height - keyboardContainer!.frame.height / 2)
self.addSubview(keyboardContainer!)

let gap = Int(self.frame.width) / 8

for i in 0..<keyboardLetters!.count {
    let posX = Int(i % 7) * gap + 22
    let posY = Int(i / 7) * gap + 25

    let key = Key(frame: CGRectMake(0, 0, 44, 44))
    key.letter = keyboardLetters![i]
    key.tag = i
    key.center = CGPoint(x: posX, y: posY)
    keyboardContainer!.addSubview(key)

    key.addTarget(self, action: "onKeyboardTap:", forControlEvents: .TouchUpInside) 
}

1 个答案:

答案 0 :(得分:0)

移动keyboardContainer的中心,所有按钮都随之移动。