从操场运行的模拟器中闪烁的 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的主要内容,如果未能解决你的问题,请参考以下文章