2015-09-08 88 views
0

按钮,这是我的代码迅速不能动态添加滚动视图

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

很简单,当我运行模拟,我看不到任何按钮在我的滚动视图。

我这样做,因为我只需要拥有有更多的项目比模拟可以有一个滚动视图,只是为了检查滚动东西

+0

您正在错误地指定标题。 – matt

+0

@matt为什么要这样? –

+0

你应该使用setTitle方法,所以:'button.setTitle(“asdfasdf”,forState:.Normal)',但老实说,你这样做的方式,它可能不会解决你的问题,改变它。 –

回答

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)

+0

是的,这是正确的。大声笑。另外,你的按钮将全部在彼此之上。但是,每个人都有自己的优势,但彼此之间的距离并不相同,但相隔1个像素 – Devster101

+0

没关系,但是滚动视图没有滚动。告诉我为什么?它已经启用垂直和水平滚动 –

+0

该死的这个骗了我,谢谢你的回答。 –