我正在尝试创建一个包含垂直放置的按钮的视图,我希望在调整窗口大小时按钮之间的空格相等.此视图上的约束(使用可视格式)是:
H:|-0-[button1]-0-|
H:|-0-[button2]-0-|
H:|-0-[button3]-0-|
H:|-0-[button4]-0-|
V:|-0-[button1]-(>=0)-[button2]-(>=0)-[button3]-(>=0)-[button4]-0-|
Run Code Online (Sandbox Code Playgroud)
按钮显示正确,但只考虑定义为> = 0的三个空格中的一个,而其他空格保持为零(布局不明确).
有没有办法使用AutoLayout将这三个空格设置为相等?
鉴于:
protocol MyProtocol {
typealias T
var abc: T { get }
}
Run Code Online (Sandbox Code Playgroud)
还有一个实现MyProtocol的类:
class XYZ: MyProtocol {
typealias T = SomeObject
var abc: T { /* Implementation */ }
}
Run Code Online (Sandbox Code Playgroud)
如何定义符合的对象数组MyProtocol
?
var list = [MyProtocol]()
Run Code Online (Sandbox Code Playgroud)
给出(以及大量的SourceKit崩溃)以下错误:
Protocol 'MyProtocol' can only be used as a generic constraint because it has Self or associated type requirements
Run Code Online (Sandbox Code Playgroud)
即使实际上定义了typealias MyProtocol
.
有没有办法让符合协议的对象列表具有通用约束?