自定义键盘的约束问题
Constraint Issues With Custom Keyboard
我在向自定义键盘中的视图添加约束时遇到问题。我在这里简化了我的问题,请注意我确实计划添加更多的子视图,所以不要担心我的键盘没有 "next keyboard" 按钮或类似的东西。我想要的是确保黑色方块始终位于键盘视图的中央,视图如下所示:
没有限制,我在 iPhone4s-5s 上得到这个:
这正是我想要的。唯一的问题是在 6 上我得到这个:
这显然偏离了中心,我们不能那样做。所以我在中心正方形上添加了一些约束(宽度和高度 = 90,并与超级视图的中心 x 和 y 对齐),但后来我在 iPhone4s 上得到了这个:
而且我在每个模拟器中都得到了类似的东西。当它从笔尖加载时,我尝试调整视图的大小,但没有骰子。我怎样才能使那个正方形居中?
我正在研究这个问题并找到了解决方案。它与您何时在视图控制器中加载笔尖有关。我的代码看起来像这样(解决方案只有一行,用注释标记)
var kView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
loadInterface()
}
func loadInterface() {
var kNib = UINib(nibName: "TrapType", bundle: nil)
kView = kNib.instantiateWithOwner(self, options: nil)[0] as! UIView
let screenSize: CGRect = UIScreen.mainScreen().bounds
//Below is the line that solved the problem.
kView.frame = view.frame
view.addSubview(kView)
view.backgroundColor = kView.backgroundColor
}
据我了解,self.view 会自动设置为正确的大小,但您可能添加的子视图没有同样的奢侈,所以只需设置框架。老实说,这是我一开始就应该意识到的事情,但你知道了。
我在向自定义键盘中的视图添加约束时遇到问题。我在这里简化了我的问题,请注意我确实计划添加更多的子视图,所以不要担心我的键盘没有 "next keyboard" 按钮或类似的东西。我想要的是确保黑色方块始终位于键盘视图的中央,视图如下所示:
没有限制,我在 iPhone4s-5s 上得到这个:
这正是我想要的。唯一的问题是在 6 上我得到这个:
这显然偏离了中心,我们不能那样做。所以我在中心正方形上添加了一些约束(宽度和高度 = 90,并与超级视图的中心 x 和 y 对齐),但后来我在 iPhone4s 上得到了这个:
而且我在每个模拟器中都得到了类似的东西。当它从笔尖加载时,我尝试调整视图的大小,但没有骰子。我怎样才能使那个正方形居中?
我正在研究这个问题并找到了解决方案。它与您何时在视图控制器中加载笔尖有关。我的代码看起来像这样(解决方案只有一行,用注释标记)
var kView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
loadInterface()
}
func loadInterface() {
var kNib = UINib(nibName: "TrapType", bundle: nil)
kView = kNib.instantiateWithOwner(self, options: nil)[0] as! UIView
let screenSize: CGRect = UIScreen.mainScreen().bounds
//Below is the line that solved the problem.
kView.frame = view.frame
view.addSubview(kView)
view.backgroundColor = kView.backgroundColor
}
据我了解,self.view 会自动设置为正确的大小,但您可能添加的子视图没有同样的奢侈,所以只需设置框架。老实说,这是我一开始就应该意识到的事情,但你知道了。