【发布时间】:2018-01-21 20:33:27
【问题描述】:
我正在使用 swift 在 Xcode 中创建自定义键盘。一切运行良好,但我遇到了限制问题。我会解释我做了什么以及我想要做什么。
我做了什么:1)我创建了一个“世界”按钮,它将在 iOS 默认键盘和自定义键盘之间切换。无论加载到什么设备上(iPhone 5、6、7 iPad 等),它都被限制在视图的左下方。 2)然后我创建了一个集合视图,无论设备如何,该视图都被限制为从世界按钮的边缘开始。 3)我创建了一个删除按钮,该按钮被限制在视图的右下角,无论设备如何。
我想要做什么:1)我希望集合视图从世界按钮开始并在删除按钮结束,无论设备如何。
我遇到的问题是删除按钮与较小设备上的集合视图重叠。我希望集合视图在删除按钮处停止,但无法弄清楚为什么我的约束不起作用。
这些是集合视图的相关约束。
// create the constraints
// leading constraint
let categoriesCollectionViewLeadingConstraint = NSLayoutConstraint(item: categoriesCollectionView, attribute: NSLayoutAttribute.leading, relatedBy: NSLayoutRelation.equal, toItem: backButton, attribute: NSLayoutAttribute.trailing, multiplier: 1, constant: 0)
// add the leading constraint
view.addConstraint(categoriesCollectionViewLeadingConstraint)
// bottom constraint
let categoriesCollectionViewBottomConstraint = NSLayoutConstraint(item: categoriesCollectionView, attribute: NSLayoutAttribute.bottom, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 0)
// add the bottom constraint
view.addConstraint(categoriesCollectionViewBottomConstraint)
// trailing constraint
let categoriesCollectionViewTrailingConstraint = NSLayoutConstraint(item: categoriesCollectionView, attribute: NSLayoutAttribute.trailing, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.trailing, multiplier: 1, constant: 0)
// set the priority to less than 1000 so it works correctly
categoriesCollectionViewTrailingConstraint.priority = 999
// add the trailing constraint
view.addConstraint(categoriesCollectionViewTrailingConstraint)
【问题讨论】:
标签: ios swift xcode button constraints