【发布时间】:2017-05-10 03:19:56
【问题描述】:
我不知道如何从完成块内显示视图。如果我在完成块之外使用相同的代码,则会显示视图。我确定该块正在执行,并且我在 didSet 中也有 setNeedsDisplay 用于我在块内使用的数组。那我错过了什么?
private var storeViews = [UIView](){ didSet{self.view.setNeedsDisplay()}}
hrd.requestData(from: "somepage.php"){[weak self] (status:Bool,items:[[String:String]]?) in
if status
{
for var i in (0..<items!.count)
{
if let item = items?[i]
{
var shape = CGRect()
shape.size = CGSize(width: 50,height: 30)
let xPosStr = item["xPosition"]
let yPosStr = item["yPosition"]
let position = CGPoint(x: (self?.stringToFloat(xPosStr!))!,y: (self?.stringToFloat(yPosStr!))!)
shape.origin = position
let someView = UIView()
someView.frame = shape
someView.backgroundColor = UIColor.red
self?.view.addSubview(someView)
self?.someViews.append(someView)
}
}
}
}
【问题讨论】:
-
您的问题不清楚;您正在展示什么样的视图?一个数组往往会指示一个 tableView,在这种情况下,您需要从主队列调用 reloadData。邮政编码。
-
我需要屏幕有一些正方形,所以我使用 CGRect,除了显示它们之外,我将它们存储在一个数组中,并且该数组有 didSet 和 setNeedsDisplay
-
你能添加你目前拥有的代码吗?
-
你是怎么画这些方块的? CAShapeLayer, UIView 自动布局, UIView 手动框架, UIView.drawRect()?
-
您好,我刚刚输入了代码(由于小于字符,循环不显示完整)
标签: swift view completion