swift无法动态地向滚动视图添加按钮

时间:2015-09-08 23:14:28

标签: ios swift uiscrollview

这是我的代码

类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)
    }
}

非常简单,当我运行模拟时,我在滚动视图中看不到任何按钮。

我这样做是因为我只需要一个滚动视图,其中包含的项目比模拟项目更多,只是为了检查滚动内容

1 个答案:

答案 0 :(得分:4)

你只需要设置背景颜色(或文本颜色),现在它们都是白色的,所以看起来它们并没有被绘制。你的代码看起来像这样:

@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)