所以我正在学习如何从屏幕外制作视图动画,以用作滑块菜单.
class ViewController: UIViewController {
@IBOutlet weak var red: UIView!
@IBOutlet weak var redHConstraint: NSLayoutConstraint!
@IBAction func buttonShift(sender: AnyObject) {
self.view.layoutIfNeeded() // **HERE**
UIView.animateWithDuration(0.5) {
self.redHConstraint.constant = 0
self.view.layoutIfNeeded() // And **HERE**
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经改编了如何使用Swift中的约束来动画UIView的代码?
1. self.view.layoutIfNeeded()部分代码有什么作用?
2.为什么在动画之前和期间编码2x?
注意:如果我注释掉第1个self.view.layoutIfNeeded()没什么变化,但是如果我注释掉第2个self.view.layoutIfNeeded()动作不再是动画并且只是出现在新坐标中.
内存使用中可以考虑哪些范围为低,中和高?
随着我的应用变得越来越复杂,我注意到这个数字越来越高.我一直试图用这个数字作为我编码效率的指标,但我意识到我没有比较它的标准.
如何理解内存使用对于iPhone/iPad来说是1024 Mb,但显然所有这些内存都无法进入应用程序.
如何在Swift ViewController之前添加一个TabBarController?我正在使用Parse进行自定义登录,ViewController这将导致TabBarController...帮助将不胜感激!
我有这方面的问题,我没有找到一个正确的答案所以我会在这里留下一个小教程.
目标是在今天的日期过滤提取的对象.
注意:它与Swift 3兼容.
我已经找到导出[UIImage]作为电影,但它全部在ObjectiveC中,我无法弄清楚Swift.
我需要从[UIImage]创建一个视频
通过以上链接研究Zoul的答案.第1部分)连接作者
我到目前为止:
let paths = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
let documentsURL = paths[0] as! NSURL
let videoWriter:AVAssetWriter = AVAssetWriter(URL: documentsURL, fileType: AVFileTypeQuickTimeMovie, error: nil)
var videoSettings: NSDictionary = NSDictionary(
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚他正确的Swift版本
NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
AVVideoCodecH264, AVVideoCodecKey,
[NSNumber numberWithInt:640], AVVideoWidthKey,
[NSNumber numberWithInt:480], AVVideoHeightKey,
nil];
Run Code Online (Sandbox Code Playgroud)
因此,UIKit框架参考描述UINavigationController了向用户呈现数据和视图的有效方式.但我很好奇使用UINavigationControllerVS SegueOnly 之间的性能和可管理性差异.
必须有某些情况,一个比另一个更适合.我对编码完全不UINavigationController熟悉,但我本能想到的更多是为了呈现VC,每个VC都有很多,并且用户在每个VC上花费的时间相同,或者需要多个VC同时运行和保存数据.这Segue对于Uni-directionalally VC进展或短期使用的低数据VC演示更为重要.这些假设是否正确?
实施a的PROS有UINavigationController哪些?
我有一个PersonsArray: NSMutableArray = [NSNull, NSNull, NSNUll, NSNull, NSNull, NSNUll, NSNull].我需要七个插槽,然后我可以用EntObject CoreData条目填充AnyObject.
我需要在这个NSMutableArray上循环执行...
如果索引槽是NSNull我想传递给下一个索引槽,如果索引槽填充了我的对象我想在这个对象上执行代码.
example PersonsArray: NSMutableArray = [
NSNull,
NSNull,
NSNull,
"<iswift.Person: 0x7f93d95d6ce0> (entity: Person; id: 0xd000000000080000 <x-coredata://8DD0B78C-C624-4808-9231-1CB419EF8B50/Person/p2> ; data: {\n image = nil;\n name = dustin;\n})",
NSNull,
NSNull,
NSNull
]
Run Code Online (Sandbox Code Playgroud)
尝试
for index in 0..<PersonsArray.count {
if PersonsArray[index] != NSNull {println(index)}
}
Run Code Online (Sandbox Code Playgroud)
提出了一系列不起作用的变化,比如
if PersonsArray[index] as! NSNull != NSNull.self {println(index)}
Run Code Online (Sandbox Code Playgroud)
要么
if PersonsArray[index] as! NSNull != NSNull() {println(index)}
Run Code Online (Sandbox Code Playgroud)
注意:使用NSNull只是NSMutableArray中的占位符,因此它的计数总是7,我可以用Object替换任何(7)槽.我应该使用NSNull以外的东西作为我的占位符吗?
尝试通过理解基本级别的代码行来巩固我的知识.
我已经调整了我的应用程序,使用ViewController(VC)2作为初始VC而不是VC1.
我正在练习完全通过代码填充这个VC2.当编码UIButton以转换为VC1时,我的控制台输出"致命错误:在解开可选值时意外发现nil"(lldb).和线程1指向VC1 viewDidLoad(VDL),我在其中设置了一些属性
VC1
override func viewDidLoad() {
super.viewDidLoad()
P1Chip.hidden = true; P2Chip.hidden = true; P3Chip.hidden = true; P4Chip.hidden = true; P5Chip.hidden = true; P6Chip.hidden = true; P7Chip.hidden = true; P8Chip.hidden = true; P9Chip.hidden = true
etc
Run Code Online (Sandbox Code Playgroud)
当VCL是初始VC时,这个VC1没有任何问题.
填充VC2的方法
import Foundation
import UIKit
class VC2: UIViewController {
let home:UIButton! = UIButton(frame: CGRectMake(10,10,15,15)) as UIButton
override func viewDidLoad() {
super.viewDidLoad()
home.backgroundColor = UIColor(red: 0.4, green: 0.6, blue: 0, alpha: 1)
home.setTitle("home", forState: .Normal)
home.addTarget(self, action: "home:", forControlEvents: .TouchUpInside)
view.addSubview(home)
} …Run Code Online (Sandbox Code Playgroud)