iOS Swift按钮显示延迟

时间:2016-03-11 18:56:16

标签: ios swift button

请考虑以下代码:

override func viewDidLoad() {
    super.viewDidLoad()

    let images = [
        "Add To Inventory","Move To Display Room","Move To Store Room","Move To Storage","Scrap Inventory"
    ]

    var buttons:[UIButton] = []
    // For use in foreground
    let name=defaults.valueForKey("name") as! String
    tasksTitle.title = "Tasks for \(name)"
    var y=CGFloat(140)

    for var i=0;i<images.count;i++ {
        print(i)
        buttons.append(UIButton(type: .Custom))
        buttons[i].frame = CGRectMake(60,y,650,100)

        buttons[i].setImage(UIImage(named: "\(images[i]).png"), forState: .Normal)
        buttons[i].tag = i
        buttons[i].addTarget(self, action: "taskPressed:", forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addSubview(buttons[i])
        y+=130
        print(y)
    }

我的问题是按钮出现大约需要20秒,而当他们只执行第一个(添加到库存)和最后一个(废料库存)实际出现时。我尝试重新创建视图并使用具有相同结果的普通按钮。有没有人知道我的问题可能是什么?

2 个答案:

答案 0 :(得分:0)

您使用的是自动布局吗?如果你是,它可以解释为什么你没有看到你的所有按钮。另一种可能是您的应用程序包中不包含某些图像(这可能导致框架花费时间尝试在其他地方找到它们)或者非常大。

答案 1 :(得分:0)

原因是延迟的原因是因为线程。当我将代码包含在

中时
dispatch_async(dispatch_get_main_queue()){
}

按钮立即出现。