小编Bar*_*bek的帖子

使用Cocoa Auto Layout中心两个按钮

我有可可自动布局的问题,无法解决这个问题.我想要实现的是让两个按钮始终在视图中居中,如下所示.

在此输入图像描述

我尝试了很多不同的方法但没有成功:(请帮帮我.

autolayout ios6

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

为什么CGSize的cornerRadii参数键入 - [UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]?

我无法弄明白......我正在玩

-[UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:] 因此:

bezierPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 80, 80)
                                   byRoundingCorners:(UIRectCornerBottomLeft)
                                         cornerRadii:CGSizeMake(20, 20)];
Run Code Online (Sandbox Code Playgroud)

它按预期工作.但是,如果我用,比方说,cornerRadii:CGSizeMake(20, 5)或者替换cornerRadii:CGSizeMake(20,20)CGSizeMake(20, 40),则没有区别.

为什么是cornerRadii CGSize而不是CGFloat呢?什么是CGSize.height

任何想法和建议将不胜感激:)

在此输入图像描述 在此输入图像描述

uikit ios uibezierpath

19
推荐指数
2
解决办法
5598
查看次数

闭包中的inout参数崩溃了Swift编译器

我需要做的就是在Swift中启动一个新项目并添加到 main.swift

struct Foo {
  let bar: (inout baz: String) -> ()
}
Run Code Online (Sandbox Code Playgroud)

当我尝试构建时,我收到一个错误:
Command failed due to signal: Segmentation fault: 11

我做错了吗?

我认为可能inout不支持闭包中的参数,但是如果我定义一个这样的闭包:

let baz: (inout baz: String) -> () = { baz in
  baz += "x"
  return
}
Run Code Online (Sandbox Code Playgroud)

甚至

var baz: (inout baz: String) -> ()?
Run Code Online (Sandbox Code Playgroud)

它编译并运行正常

xcode closures compiler-errors swift

17
推荐指数
1
解决办法
1165
查看次数

如何在Swift中调用不明确的泛型函数?

我已经定义了两个通用函数

func job<T: Comparable>(x: T) {
  println("1")
}

func job<T: Hashable>(x: T) {
  println("2")
}
Run Code Online (Sandbox Code Playgroud)

当我试图打电话给其中一个时,例如:

let myInt: Int = 1 // Explicit Int just for clarity of the example
job(myInt)
Run Code Online (Sandbox Code Playgroud)

当然Swift抱怨并抛出一个错误
模糊地使用'job'
这是可以理解的,因为我不清楚我是否想要使用ComparableHashable(Int符合两者)

有没有办法可以提示编译器我要使用哪一个?

generics ambiguity swift

8
推荐指数
1
解决办法
3404
查看次数

嵌套的Cocoa Touch框架

我正在寻找一种方法来生成具有子框架的框架,这些框架在运行时不会相互干扰.下最佳地描述了这个想法.

在此输入图像描述

假设每个版本的JSON Parser框架与另一个版本不兼容.

我一直在尝试大量的方法来实现上述目标,但每次都失败了.最有希望的是伞式框架,但Apple不仅不鼓励使用它(我不清楚为什么),而且它们似乎没有按预期工作.

会发生什么,如果我创建一个嵌入式框架A的应用程序,它本身嵌入了JSON Parser框架v1.0,似乎一切正常.但是,只要我将JSON Parser框架v3.0添加到App并将App链接到它,Framework A就会在运行时开始使用JSON Parser框架v3.0,而不是驻留在其中的v1.0.并假设他们是互不兼容,这可以打破框架.

添加框架B也是如此,但在运行时选择的实现似乎是随机的.

是否可以创建具有嵌入式JSON Parser框架v1.0的Framework A,并且在这种情况下可以安全使用?我发现很难相信没有办法实现这一点,但我找不到办法让它发挥作用,并开始想知道它是否实际上是可能的:(

xcode cocoa-touch frameworks ios

6
推荐指数
1
解决办法
878
查看次数