小编Cha*_*eon的帖子

更改约束时`self.view.layoutIfNeeded()`做什么

所以我正在学习如何从屏幕外制作视图动画,以用作滑块菜单.

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()动作不再是动画并且只是出现在新坐标中.

ios swift

14
推荐指数
1
解决办法
2万
查看次数

适用于iOS应用的理想内存使用量

内存使用中可以考虑哪些范围为低,中和高?

随着我的应用变得越来越复杂,我注意到这个数字越来越高.我一直试图用这个数字作为我编码效率的指标,但我意识到我没有比较它的标准.

如何理解内存使用对于iPhone/iPad来说是1024 Mb,但显然所有这些内存都无法进入应用程序.

iphone memory-management ipad ios

11
推荐指数
1
解决办法
1万
查看次数

Swift - 如何从ViewController切换到TabBarController

如何在Swift ViewController之前添加一个TabBarController?我正在使用Parse进行自定义登录,ViewController这将导致TabBarController...帮助将不胜感激!

xcode uistoryboardsegue swift

9
推荐指数
1
解决办法
5917
查看次数

核心数据谓词按今天的日期过滤

我有这方面的问题,我没有找到一个正确的答案所以我会在这里留下一个小教程.

目标是在今天的日期过滤提取的对象.

注意:它与Swift 3兼容.

core-data nspredicate swift swift3

8
推荐指数
3
解决办法
8151
查看次数

从[UIImage],Swift创作电影

我已经找到导出[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)

video avfoundation ios swift

6
推荐指数
2
解决办法
5997
查看次数

功能差异,UINavigationController vs Only Storyboard Segue

因此,UIKit框架参考描述UINavigationController了向用户呈现数据和视图的有效方式.但我很好奇使用UINavigationControllerVS SegueOnly 之间的性能和可管理性差异.

必须有某些情况,一个比另一个更适合.我对编码完全不UINavigationController熟悉,但我本能想到的更多是为了呈现VC,每个VC都有很多,并且用户在每个VC上花费的时间相同,或者需要多个VC同时运行和保存数据.这Segue对于Uni-directionalally VC进展或短期使用的低数据VC演示更为重要.这些假设是否正确?

实施a的PROS有UINavigationController哪些?

uinavigationcontroller ios segue swift

5
推荐指数
1
解决办法
2722
查看次数

如何检查NSMutableArray元素是NSNull还是AnyObject

我有一个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以外的东西作为我的占位符吗?

core-data nsmutablearray ios nsnull swift

2
推荐指数
1
解决办法
5427
查看次数

swift presentViewController以编程方式在destinationVC VDL中找到nil

尝试通过理解基本级别的代码行来巩固我的知识.

我已经调整了我的应用程序,使用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)

xcode ios presentviewcontroller swift

0
推荐指数
1
解决办法
1278
查看次数