的意见斯威夫特游乐场数量有限(Limited number of views in Swift Pl

2019-09-29 21:47发布

当创建一个新夫特游乐场 / .playgroundbook旨在被对iPad应用程序使用,所以经常接收到的错误消息:

“问题跑操场。有在运行这个游乐场遇到问题。请检查代码的错误。”

我可以跟踪这个问题下添加某些子视图我的实时取景时引起的。 更精确地说,我的目标是一个UIImage分割成多个部分,并为他们创造新的UIImageViews:

for x in 0..<parts {
    for y in 0..<parts {
        //Create UIImageView with cropped image
        let pieceView = UIImageView.init(frame: CGRect.init(x: CGFloat(x)*singleSize.width, y:CGFloat(y)*singleSize.height, width: singleSize.width, height: singleSize.height))
        let imageRef = image.cgImage!.cropping(to: CGRect.init(x:0, y:0, width: 100, height: 100));
        pieceView.image = UIImage.init(cgImage: imageRef!)
        //Add them to an array
        self.viewArray.append(pieceView)
    }
}

而这正是事情变得对我来说非常棘手: 添加这些UIImageViews的7现在工作没有问题。 但只要我想补充8个或更多的人,操场停止工作 ,并给出错误消息“的问题上运行的操场......”(见上文)

我测试了到目前为止:

  • 用相同的图像添加的UIImageViews不会导致此问题
  • 在后台线程裁剪的UIImage并添加视图在主线程并没有帮助
  • 不将它们添加到实时取景创建的UIImageViews不会引起任何问题
  • 代码工作以及在Mac操场被执行时,无论怎样的人的意见添加

Answer 1:

我看到了类似的问题,问题是,这只是错误地使用了零。
为了得到一个明确的错误消息,刚刚创建具有相同的文件游乐场,并在Mac上运行它:这样你可以了解正在发生的事情更详细的信息,找到更容易解决您的问题。

让我知道如果你发现任何问题:)



Answer 2:

可能是一个迟到的回答......但上周在我正经历着同样的问题......终于在今天刚刚弄清楚如何解决:

我跑的一块,其中我添加背景视图下一个代码:

func createView(){
    // gray background
    let marco = CGRect(x:0, y: 0, width: 603, height: 825)
    vista = UIView(frame: marco)
    vista.backgroundColor = UIColor.gray
    vista.isUserInteractionEnabled = true
    vista.tag = 5
    PlaygroundPage.current.liveView = vista
    PlaygroundPage.current.needsIndefiniteExecution = true
}

但是我把这个在代码的开始

我已经改变为:

PlaygroundPage.current.liveView = vista
PlaygroundPage.current.needsIndefiniteExecution = true

将其放置在所有代码的最后,你开始运行程序之前...如果你需要更多的细节让我知道,可以分享更多的信息。



文章来源: Limited number of views in Swift Playgrounds