- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 UIView.transitionFromView 在 Playground 中的两个 View 之间制作一个简单的翻转动画。如本 question 中所述,旧版本的 Xcode 只需要选择“在完整模拟器中运行”选项,但在 Xcode 7.1 的 Platform 下的 Playground Settings 中不再可用。
在我的工作示例中,底 View 总是立即显示。执行过渡,但使用任何动画:
import UIKit
import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
func flipFrontToBack(frontView: UIView, backView: UIView) {
let transitionOptions = UIViewAnimationOptions.TransitionFlipFromLeft
var views : (frontView: UIView, backView: UIView)
views = (frontView: frontView, backView: backView)
UIView.transitionFromView(views.frontView,
toView: views.backView,
duration: 2.0,
options: transitionOptions,
completion: { _ in
})
}
func smallSquare(backgroundColor: UIColor, borderColor: UIColor) -> UIView {
let bounds = CGRect(x: 50, y: 50, width: 50, height: 50)
let view = UIView(frame: bounds)
view.backgroundColor = backgroundColor
view.layer.borderColor = borderColor.CGColor
view.layer.borderWidth = 5
view.layer.cornerRadius = 10
return view
}
func makeView() -> UIView {
let bounds = CGRect(x: 0, y: 0, width: 400, height: 200)
let view = UIView(frame: bounds)
view.backgroundColor = UIColor.lightGrayColor()
view.layer.borderColor = UIColor.purpleColor().CGColor
view.layer.borderWidth = 5
view.layer.cornerRadius = 10
return view
}
let view = makeView()
var frontCard = smallSquare(UIColor.blackColor(), borderColor: UIColor.whiteColor())
var backCard = smallSquare(UIColor.whiteColor(), borderColor: UIColor.redColor())
view.addSubview(backCard)
view.addSubview(frontCard)
XCPlaygroundPage.currentPage.liveView = view
flipFrontToBack(frontCard, backView: backCard)
我的代码在我的 Xcode 项目中运行。我只是想将它迁移到 Playground,这样我就可以对一些额外的更改进行原型(prototype)设计。通过注释掉 ** flipFrontToBack()** 方法,您可以看到未翻转和“翻转”的图像。所以,我得到了翻转,但没有动画。
最佳答案
我取得了一点进步。我必须使用 NSTimer 来安排翻转至少 0.1 秒。容器翻转,而不是两张牌,但这是另一个问题。我还重构了一个类,因为一旦你超越几行,它们似乎更容易使用。无论如何,一些“工作”代码:
import UIKit
import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
class MyView: UIView {
var frontCard:UIView!
var backCard:UIView!
func makeView() {
self.backgroundColor = UIColor.lightGrayColor()
self.layer.borderColor = UIColor.purpleColor().CGColor
self.layer.borderWidth = 5
self.layer.cornerRadius = 10
}
func flipFrontToBack(frontView: UIView, backView: UIView) {
let transitionOptions = UIViewAnimationOptions. TransitionFlipFromLeft
var views : (frontView: UIView, backView: UIView)
views = (frontView: frontView, backView: backView)
/*
http://stackoverflow.com/questions/24413539/uiview- transitionwithview-swift-syntax
*/
UIView.transitionFromView(views.frontView,
toView: views.backView,
duration: 2.0,
options: transitionOptions,
completion: { _ in
})
}
func smallSquare(backgroundColor: UIColor, borderColor: UIColor) -> UIView {
let bounds = CGRect(x: 50, y: 50, width: 50, height: 50)
let view = UIView(frame: bounds)
view.backgroundColor = backgroundColor
view.layer.borderColor = borderColor.CGColor
view.layer.borderWidth = 5
view.layer.cornerRadius = 10
return view
}
override init(frame: CGRect) {
super.init(frame: frame)
frontCard = smallSquare(UIColor.blackColor(), borderColor: UIColor.whiteColor())
backCard = smallSquare(UIColor.whiteColor(), borderColor: UIColor.redColor())
makeView()
self.addSubview(backCard)
self.addSubview(frontCard)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func update() {
flipFrontToBack(frontCard, backView: backCard)
}
func flipIt() {
NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "update", userInfo: nil, repeats: false)
}
}
let bounds = CGRect(x: 0, y: 0, width: 400, height: 200)
let view = MyView(frame: bounds)
XCPlaygroundPage.currentPage.liveView = view
view.flipIt() // Works if NSTimer > 0
//view.update() // Doesn't work. Flips immediately
关于ios - Xcode 7.1 中没有 "Run in Full Simulator"的 UIView 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338225/
如何从 tvOS 模拟器卸载应用程序? 我已经尝试长按图标,但没有出现“关闭按钮”。 我知道,这是一个 Beta 版本,也许将来他们会实现类似 iOS 的功能。 谢谢你。 最佳答案 方法一 从主屏幕:
我在IOS 8的Xcode-6 Beta中找不到新模拟器数据的目录 它不在 〜/图书馆/应用程序支持/ iPhone模拟器/ Where does the iPhone Simulator store
苹果的Whats new in Xcode 9声明我们可以录制模拟器视频。如何做到这一点? 最佳答案 使用命令行截取屏幕截图或录制视频: 在模拟器中启动您的应用。 打开终端。 要截取屏幕截图,请使用屏
我想构建一个通过 wifi 网络与其他设备通信的应用程序。因为我没有两台真正的 iOS 设备,所以我想在虚拟网络中连接两个 iOS 模拟器。起初我不知道如何/是否可以同时运行两个模拟器,其次我不知道如
我正在尝试模拟鼠标在窗口上的点击。我目前成功地执行了如下操作(我使用的是 Python,但它应该适用于一般的 win32): win32api.SetCursorPos((x,y)) win32api
我想在 ios6 和 ios7 模拟器上运行我的应用程序。我正在尝试安装 ios 6 模拟器,但收到此错误: Failed to install "iOS 6.1 Simulator" An unkn
尽管在实际设备上一切正常,但我想知道为什么从不回调代理 在 iOS 13 beta 5 上的模拟器上? 我在互联网上搜索了答案,但一无所获。 我为协议(protocol)实现了 3 个功能,如下所示:
在我的代码中,我犯了一些错误,将 NSNumber 分配给 NSString: self.totalLikesLabel.text=[user objectForKey:@"totalLikes"];
我使用的是 Xcode 6.1 和 iOS Simulator 8.1。运行我使用 iOS 模拟器编写的简单应用程序需要很长时间。构建过程没问题,但 iOS 模拟器将在应用程序启动前 5 分钟显示黑色
这个问题在这里已经有了答案: Is there a way to simulate multiple iphones using xcode/iphone sim? (10 个回答) 7年前关闭。 我
我旧安装的 Xcode 完全可以正常工作,但我尝试升级 Xcode 以使用 iOS 6,所以我在 Mac App Store 中下载了新版本,但我的 iOS 模拟器现在停止工作了,他告诉我他不能找到S
使用新的 Xcode 6,有时当我在模拟器之间切换时 - 我收到错误消息“模拟器正在使用 - 模拟器无法启动,因为它已经在使用中”。但是,模拟器未在使用中 - 我也没有在事件监视器中看到它。克服这个问
Iam running the latest OSX/Flutter/XCode Versions using flutter, android studio and firebase and
我已将 xcode 更新到 12.3,我收到了新错误。 找不到目标“arm64-apple-ios-simulator”的模块“Alamofire”;找到:x86_64-apple-ios-simul
xcode 9模拟器报错unable to boot the simulator launchd failed to respond mac os sierra 我试过从派生数据中删除内容、重新启动
更新到 Xcode 12 后,项目在模拟器上构建时给了我这个错误: Could not find module 'FrameworkName' for target 'arm64-apple-ios-
我正在尝试在 Windows PC 中使用 IOS Simulator/Emulator 或 iOS SDK 进行移动应用程序测试。是否可以在 Windows PC 中安装 IOS Simulator
我有一个关于如何在 Simpy 中调试的一般性问题。普通的调试工具似乎不起作用,因为一切都在事件循环中运行,您无法逐行检查代码并检查任何时间点存在的内容。 主要是,我感兴趣的是查找在特定时间存在哪些类
在我的模型中,我使用了一个使用自由导航的运输车。如果它是正确的,那么运输车就不能穿墙,奇怪的是在我的模型中,运输车在某一时刻以某种方式能够穿墙? 当我检查模拟时,他在红色圆圈部分的某处滑过墙。 (看截
我是编程新手,我想编写一个程序(仅供自用),每次运行时都会重复一组预设的键盘操作,谁能给我一些建议?是否有任何应用程序可以做到这一点? 最佳答案 有各种各样的程序可以满足您的需求。如果您使用的是 Wi
我是一名优秀的程序员,十分优秀!