Swift 3 - 新UIView在删除前一个后不显示
问题描述:
我已经设置了一个简单的演示来解释我的问题。我有2个功能。 1加载一个红色的UIView,一个删除当前的UIView,并用一个新的X位置替换它。我知道我可以改变当前UIView的x位置,但这不是重点。Swift 3 - 新UIView在删除前一个后不显示
我还需要一个数组来存储在UIView的,这我创建像这样:
var cellArray = Array<UIView>()
第一函数来加载的UIView如下:
func loadGridCell(xPos:Int) {
let cell = UIView(frame: CGRect(x: xPos, y: 20, width: 20, height: 20))
cell.layer.borderWidth = 1
cell.layer.borderColor = UIColor(red:1.00, green:0.00, blue:0.00, alpha:0.90).cgColor
cell.backgroundColor = UIColor(red:1.00, green:0.00, blue:0.00, alpha:0.5)
self.view?.addSubview(cell)
cellArray.append(cell)
print("Spawning Cell")
}
这函数完美工作,并创建红色的UIView。第二个功能如下:
func loadNextCell() {
print("Removing Current Cell")
for element in cellArray {
element.removeFromSuperview()
}
cellArray.removeAll()
print("Creating New Cell")
loadGridCell(xPos: 40) //This should create a new UIView with an x-position of 40
}
此功能也工作正常,直到它试图用不同的X位置再次调用第一个函数。它删除了第一个UIView完美,但似乎并不想创建下一个。最奇怪的部分是,函数被调用,显示文本“Spawning Cell”,它告诉我新的UIView正在创建,但有些东西阻止它被显示。
这可能是什么原因造成的?
你调用方法'loadNextCell'在主线程的意见层次? –
我对Swift和iOS开发相当陌生,不知道究竟是什么意思。我所知道的是loadNextCell函数是从用户向下滑动时调用的,它来自GameViewController.swift中的swipeGesture,但loadNextCell和loadGridCell函数位于GameScene.swift文件中。对不起,如果我不能得到更多的援助。 – Terminal