从操场运行的模拟器中闪烁的 UIView

Posted

技术标签:

【中文标题】从操场运行的模拟器中闪烁的 UIView【英文标题】:Flickering UIView in Simulator running from a Playground 【发布时间】:2015-03-17 21:41:42 【问题描述】:

我正在运行一个操场,Xcode 6.3 (6D543q)。因此 Swift 1.2

Playground 导入 XCPlayground。 我正在创建一个 UIView 并调用 XCPShowView() 让它在模拟器中而不是在 Playground 中呈现。 我也以同样的方式呈现 UIAlertView。

UIAlertView 正常显示。 UIView 在较大和较小尺寸之间闪烁大约每秒 5 次,合理不规则。 我尝试调整它的大小以适应屏幕的边界,但没有成功。

下面的代码......

// Playground - noun: a place where people can play

import UIKit
import Foundation
import XCPlayground

 XCPlayground.XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true)

@objc class alertHandler: NSObject, UIAlertViewDelegate 

  func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) 
    if buttonIndex > 0 

     // View things....
     let redRectangleFrame = CGRect(x: 0, y: 0, width: 200, height: 200)
     let redRectangle = UIView(frame: redRectangleFrame)
     redRectangle.backgroundColor = UIColor.redColor()
     redRectangle.setTranslatesAutoresizingMaskIntoConstraints(false)
     XCPShowView("Red Rectangle", redRectangle)

     // Alert view things...
     let recevingAlertView = alertView

     let text = alertView.textFieldAtIndex(0)?.text
     println("\(text!)")
     println("Button \(buttonIndex)")
    
  


let anAlertHandler = alertHandler()

let status = "Hey there!"
let message = "Do you have a moment to talk about our Lord and Saviour, Cthulhu?"
let cancel = "Sounds wierd"
let ok = "Oooh! Yes"

let alert = UIAlertView(title: status,
                  message: message,
                 delegate: anAlertHandler,
        cancelButtonTitle: cancel,
        otherButtonTitles: ok)
alert.alertViewStyle = UIAlertViewStyle.PlainTextInput
alert.show()

XCPShowView("Alert", alert)

【问题讨论】:

来自 NSCoder 之夜的问候。醉。无法阅读。对不起。 好的,我提交了一个雷达:20256369 运气好吗?我在 UIScrollView 上看到了同样的情况。 恐怕还没有,希望把它带到 WWDC 的实验室 【参考方案1】:

注意到一些测试游乐场模拟器示例在本地出现了一些闪烁(您的示例对我来说崩溃了版本 6.3.2 (6D2105))

来自this post(他们的动画确实出现了,但闪烁和重叠)

在 Playgrounds 中使用 UIKit 存在一些限制和缺陷。这 主要限制是自动布局在使用时有一些问题 游乐场。一些约束会导致运行时异常 除了增加编译时间。希望将来对 Xcode 进行更新 将解决这个问题。另一个缺点是 Playgrounds 的性能 使用 XCPlayground 时。由于 Xcode 与 在 Playground 后面运行的 ios 模拟器。

【讨论】:

以上是关于从操场运行的模拟器中闪烁的 UIView的主要内容,如果未能解决你的问题,请参考以下文章

游乐场消息“次数”

Swift UIView 从堆栈视图中消失

过渡动画中的闪烁(模拟器?)

是否可以在 UIDynamicKit 中模拟对象/ UIView 的重力?

当我们在运行时更改模拟器方向时,UIViews 重叠

UIView 显示在屏幕顶部移位