swift 无法将按钮动态添加到滚动视图
swift couldn't add button dynamically to a scroll view
这是我的代码
class ViewController: UIViewController {
@IBOutlet weak var d: UIScrollView!
let numberOfButtons = 50
override func viewDidLoad() {
super.viewDidLoad()
for index in 0..<self.numberOfButtons {
let frame1 = CGRect(x: 20 + index, y: 20 + index, width: 45, height: 45 )
let button = UIButton()
button.frame = frame1
button.titleLabel?.text = "asdfasdf"
self.d.addSubview(button)
}
}
很简单,当我 运行 模拟时,我在滚动视图中看不到任何按钮。
我这样做是因为我只需要一个滚动视图,它的项目比模拟所能拥有的要多,只是为了检查滚动的东西
你只需要设置背景颜色(或者文字颜色),现在都是白色的,看起来没有画出来。您的代码如下所示:
@IBOutlet weak var d: UIScrollView!
let numberOfButtons = 50
override func viewDidLoad() {
super.viewDidLoad()
for index in 0..<self.numberOfButtons {
let frame1 = CGRect(x: 20, y: 20 + (index * 45), width: 45, height: 45 )
let button = UIButton(frame: frame1)
button.setTitle("asdfasdf", forState: .Normal)
button.backgroundColor = UIColor.blackColor()
self.d.addSubview(button)
}
}
我还稍微更改了框架,以便它们在滚动视图中画成一条直线。此外,除非您正确设置 contentSize,否则您的视图将不会滚动,因此您需要在 for 循环之后立即插入一行,如下所示:self.d.contentSize.height = CGFloat(45*numButtons)
这是我的代码
class ViewController: UIViewController {
@IBOutlet weak var d: UIScrollView!
let numberOfButtons = 50
override func viewDidLoad() {
super.viewDidLoad()
for index in 0..<self.numberOfButtons {
let frame1 = CGRect(x: 20 + index, y: 20 + index, width: 45, height: 45 )
let button = UIButton()
button.frame = frame1
button.titleLabel?.text = "asdfasdf"
self.d.addSubview(button)
}
}
很简单,当我 运行 模拟时,我在滚动视图中看不到任何按钮。
我这样做是因为我只需要一个滚动视图,它的项目比模拟所能拥有的要多,只是为了检查滚动的东西
你只需要设置背景颜色(或者文字颜色),现在都是白色的,看起来没有画出来。您的代码如下所示:
@IBOutlet weak var d: UIScrollView!
let numberOfButtons = 50
override func viewDidLoad() {
super.viewDidLoad()
for index in 0..<self.numberOfButtons {
let frame1 = CGRect(x: 20, y: 20 + (index * 45), width: 45, height: 45 )
let button = UIButton(frame: frame1)
button.setTitle("asdfasdf", forState: .Normal)
button.backgroundColor = UIColor.blackColor()
self.d.addSubview(button)
}
}
我还稍微更改了框架,以便它们在滚动视图中画成一条直线。此外,除非您正确设置 contentSize,否则您的视图将不会滚动,因此您需要在 for 循环之后立即插入一行,如下所示:self.d.contentSize.height = CGFloat(45*numButtons)