1
我試圖添加子視圖,但所有添加的子視圖僅顯示for循環結束時,我想知道是否有方法使每個子視圖出現時已經添加,這是我的代碼使用for循環添加子視圖直到循環結束時才顯示圖像
for colum in 0 ... colums-1 {
xPos = colum * seatWidth
for row in 0 ... rows-1 {
yPos = row * seatWidth
let seatImageView = dataSource?.seatsView(sender: self, seatImageViewForRow: row, andColum: colum)
if seatImageView?.state != .empty {
seatImageView?.delegate = self
seatImageView!.frame = CGRect(x: xPos, y: yPos, width: seatWidth, height: seatWidth)
containerView?.addSubview(seatImageView!)
}
}
xPos = 0
}
請說明。正如所寫,在循環完成後,所有視圖都會很快出現在一起。你想要發生什麼呢?你想讓每一個在每一個之間都會有一些延遲嗎? – rmaddy
這可能是性能問題,但由於您需要在主線程中執行此操作,因此您可以在view.addSubview()之後添加view.layoutIfNeeded()調用。 (我**不是**推薦這個,只是說它應該可以工作。) – dfd
我想在for循環中的每個addSubview之後顯示在屏幕中添加的每個視圖,我試圖調用setNeedsDisplay()並且不起作用,我不相信layoutIfNeeded做的工作,因爲沒有約束的添加視圖 –