小编Fre*_*Lee的帖子

切换状态栏时如何重新定位导航/工具栏?

环境: iOS 6/7,Xcode 5中的AutoLayout.


我知道要调整NavBar以容纳状态栏,我将NavBar的背景图像设置为64位高(参考:WWDC 2013视频讲座#214).

在此输入图像描述

有没有一种方便的方法来切换这个状态栏的存在,同时重新定位 NavBar向上冲洗容器视图(反之亦然)?

添加了关注:我需要同时使用iOS 6和7.
iOS 6具有可靠的状态栏.因此,我必须在iOS 7中更改NavBar的背景图像以自动容纳状态栏......或者
......我是否正确我只能将状态栏设置为OPAQUE以在iOS 6/7中具有相似的定位环境?

uistatusbar autolayout ios7 xcode5

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

如何为Swift设置单元测试?

我觉得尝试掌握Unit Testing/Swift是明智的.
我查看了WWDC的Objective-C版本,并且非常了解Objective-C范例:导入单元测试依赖的头文件等.

单元测试不知道'fetchFlickrPhotoWithSearch()'.所以...

由于单元测试模块/目标超出了应用程序目标的范围,我假设我需要导入具有我想要测试的函数的特定Swift文件(类似于Objective-C的头文件范例).

但编译器将此导入标记为"No such module ..."

那么......如何使我的Swift API 用于单元测试?

在此输入图像描述

unit-testing swift

5
推荐指数
2
解决办法
3275
查看次数

当我为容器UIView设置动画时,如何缩放容器UIView的子视图的布局/大小?

目标:能够为容器视图的框架设置动画,同时它的子视图保持其原始布局和比例与容器视图成比例.

场景:

  1. 通过约束/自动布局定位的元素; 在绿色容器内.
  2. 每个动画调整绿色containerView的物理坐标(帧/边界).
  3. 成员的压缩和拥抱属性设置为优先级.

UIView.animateWithDuration(0, animations: {
    self.bounds = myBounds
}) {(One) in
    UIView.animateWithDuration(1, animations: {
        self.frame = myFrame
    }) {(Two) in
        UIView.animateWithDuration(0.5, animations: {
            self.frame = origFrame
            // self.center = myCenter
        }) {(Three) in
            UIView.animateWithDuration(0.2, animations: {
                self.frame = distantFrame
            })
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是原始布局:

在此输入图像描述

我希望成员元素按比例与其容器视图成比例,如下所示:

在此输入图像描述

但是成员元素(一个标签'Hello World!')没有相应调整,因为它们的绿色容器视图动画到左上角的方块:

在此输入图像描述

如何保持UIView成员的布局与其盛行的容器视图框架成比例

注意:这适用于任何类型的成员(UIView,UITextView,...等); 用于简单的位置/布局和转换(数据透视)动画.

constraints uiviewanimation ios-autolayout

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

Swift 2.2:如何附加到现有的 Set?

我想利用 Set 的属性,但我看不到任何附加到现有 Set 的方法。

这是我所拥有的:

var mySet = Set<Int>()
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

mySet.append(8)
Run Code Online (Sandbox Code Playgroud)

……这不可能。

如何添加到 Set 中?

swift2

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

为什么我的应用程序没有列出我的设置?

我已将股票“Settings.Bundle”添加到我的 App Bundle 中:

在此处输入图片说明

但是,我得到了一组不同的设置(显示在模拟器中): 在此处输入图片说明

* 修订 * Settings.bundle 是目标的成员: 在此处输入图片说明

这是 settings.bundle 所在的位置: 在此处输入图片说明

注意:在我对模拟器进行“重置”后,我可以看到新的设置。但是,即使在删除应用程序并进行冷启动之后,我也看不到实际设备上的任何变化。

如何让我的设备版本识别更新的/新的设置包?

ios settings.bundle swift2 xcode7-beta6

4
推荐指数
1
解决办法
3625
查看次数

Swift 2.1:如何从数组生成集合?

场景: 一个字符串数组,很多都是重复的。

目标: 产生一个唯一的字符串数组。

作案手法: 我正在考虑将数组转换为一组变得唯一的字符串;从中生成一个新的唯一字符串数组。

问题:如何将 Swift 数组转换为 Swift Set?

arrays set swift2

4
推荐指数
2
解决办法
3831
查看次数

如何在 O(n) 运行时间和 O(1) 空间复杂度内重新组织数组?

我是一个“空间复杂性”新手,遇到了一个问题。

假设我有一个任意整数的数组:
[1,0,4,2,1,0,5]

我如何重新排序该数组以使所有零都在一端:
[1,4,2,1,5,0,0]

...并计算非零整数的计数(在本例中:5)?

...在O(n)运行时具有O(1)空间复杂度?

我不擅长这个。
我的背景更多是环境工程而不是计算机科学,所以我通常会进行抽象思考。

我想我可以进行排序,然后计算非零整数。
然后我想当我重新排列数组时,我只能做一个每个元素的复制。
然后我想到了类似冒泡排序的方法,交换相邻元素,直到到达零的末尾。
我认为我可以通过移位数组成员的地址来节省“空间复杂度”,因为数组点指向数组,并带有其成员的偏移量。

我要么以牺牲空间复杂度为代价来增强运行时间,要么反之亦然。

解决办法是什么?

arrays sorting algorithm space-complexity swift2

4
推荐指数
1
解决办法
394
查看次数

如何对元组数组进行排序?

如何实现(或创建)一组元组列表的数组?
从我的代码中收集了以下内容.

基本上我创建了一个元组数组并通过for循环填充它; 之后我试着对它进行排序.

var myStringArray: (String,Int)[]? = nil
...

myStringArray += (kind,number)
...

myStringArray.sort{$0 > $1}
Run Code Online (Sandbox Code Playgroud)

这是我在构建之前给我的Xcode:

test.swift:57:9:'(String,Int)[]?' 没有名为'sort'的成员

arrays sorting tuples swift

3
推荐指数
2
解决办法
4895
查看次数

如何将Swift结构/枚举合并到Objective-C中?

场景:我已经通过.h桥将Objective-C文件暴露给Swift; 所以我可以从.Swift通过Storyboard启动Objective-C.

但是,我在ObjC需要的Environment.Swift文件中声明了一些全局枚举和结构:

enum BarButtonItem:Int {
    case cancel = 1
    case back
    case save
    case activate
    case upload
    case share
}
Run Code Online (Sandbox Code Playgroud)

在Swift中访问枚举:

  @IBAction func navButtonAction(sender: UIBarButtonItem) {
        if let buttonItem = BarButtonItem(rawValue: sender.tag) {
            switch buttonItem {
            case .save:
                println("{(3.3)AccessBoundaries} Save.")
            default:
                println("")
            }
        }
        self.dismissViewControllerAnimated(true, completion: nil)
    }
Run Code Online (Sandbox Code Playgroud)

我想在Objective-C文件中访问此(和其他数据类型):

- (IBAction)barButtonAction:(UIBarButtonItem *)sender {
    BarButtonItem....?
}
Run Code Online (Sandbox Code Playgroud)

Xcode无法识别这一点.

如何将.Swift文件中定义的环境数据类型(或者我可以?)暴露给Objective-C文件?
...并且,是否有可能在Objective-C中解释.Swift的结构? 在此输入图像描述

enums struct objective-c swift

3
推荐指数
1
解决办法
2543
查看次数

什么是SwiftShims模块?

我试图通过Xcode 7.0将Swift v1.2项目转换为Swift v2.0项目.

我在构建过程中得到了这个:

Swift在构造此模块的ast上下文时遇到致命错误:缺少必需的模块'SwiftShims'调试器中将无法使用此模块中的调试信息.

什么是'SwiftShims'模块?
如果它丢失了我该如何安装呢?

swift2 xcode7-beta4

3
推荐指数
1
解决办法
5570
查看次数