swift - 如何在uiscrollview中的按钮之间添加空格
问题描述
我非常努力地在 UIScrollView 中的按钮数组之间添加空间,但我做不到。有什么方法可以在 UIScrollView 中的按钮数组之间留出空间?我附上了一张图片来解释我想要什么。
这是我的代码:
//MARK: - SETUP CATEGORIES BUTTONS
func setupCategoriesButtons() {
var xCoord: CGFloat = 1
let yCoord: CGFloat = 1
let buttonHeight: CGFloat = 40
let buttonwidth: CGFloat = 40
let gap: CGFloat = 0
// Counter for items
var itemCount = 0
// Loop for creating buttons
for i in 0..<myArray.count {
itemCount = i
// Create a Button
let catButt = UIButton(type: .custom)
catButt.showsTouchWhenHighlighted = true
catButt.setTitle("\(myArray[itemCount])", for: .normal)
catButt.sizeToFit()
catButt.frame = CGRect(x: xCoord, y: yCoord, width: catButt.frame.size.width + 30, height: buttonHeight)
catButt.layer.cornerRadius = 8
catButt.titleLabel?.font = UIFont(name: "Titillium-Semibold", size: 12)
// catButt.addTarget(self, action: #selector(categoryButt(_:)), for: UIControlEvents.touchUpInside)
// Add Buttons & Labels based on xCood
xCoord += catButt.frame.size.width + gap
categoriesScrollView.addSubview(catButt)
letterButtons.append(catButt)
} // END LOOP --------------------------
for i in 0..<letterButtons.count {
letterButtons[i].tag = i
letterButtons[i].backgroundColor = RandomColor()
letterButtons[i].setTitleColor(UIColor.white, for: .normal)
}
// Place Buttons into the ScrollView
categoriesScrollView.contentSize = CGSize(width: buttonwidth * CGFloat(itemCount+1), height: yCoord)
}
解决方案
let gap: CGFloat = 0
看起来不对,如果你想要一个间隙。不应该是例如... = 15
吗?
替代方案可能包括将它们放在带有spacing
集合的 UIStackView 中。使用自动布局也很简单,在提供间隙的按钮之间创建约束。
推荐阅读
- javascript - 使用纯js更改复选框状态时如何获取属性中的值?
- vue.js - 为什么我的 AWS-Amplify 注册请求不包含某些参数?
- python - 如何检查熊猫数据框中是否有重复的样本?
- r - R cut - 标签具有前瞻偏差
- terraform - Terraform 在嵌套动态块中使用 count.index
- postgresql - 在 postgreSQL 中获取日期
- python - 在实时读取stdout和stderr的同时与子进程交互
- sql - 处理 CustomField 插入 - 哪个选项更高效且更易于维护
- xamarin.forms - 如何在列表视图中使用数据库信息更改标签的文本颜色和背景颜色?
- python - 如何传递一个系列来调用用户定义的函数?