小编far*_*bfn的帖子

是否可以将IBDesignable与UICollectionViewCells一起使用并在故事板中实时渲染它们?

我知道如何在自定义视图中使用@IBDesignable.但是可以将IBDesignable用于单元格并在故事板中渲染它们吗?

例如:我在storyboard中有一个collectionViewController,并添加了一个uiCollectionCell和指定的类作为我的customCellClass.

ps:我知道在collecionViews和tableViews中使用Xibs我们必须在代码中调用方法registerNib:forReuseIdentifer(我正在这样做).只是想知道,是否有可能在故事板中看到它的渲染视图.

p.s2:我发现了这个并且它与UIViews 完美配合,但不知道如何使它与CollectionCells和TableCells一起使用.:(

xib ios uicollectionviewcell ibdesignable

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

如何同时使用带有可选和扩展的@objc协议?

这段代码无法编译,可能听起来很愚蠢,但我会解释为什么它如此重要!

@objc protocol p {
    optional func f1()
    func f2()
}

extension p {
    func f1() { }
    func f2() { }
}


class foo: p {
}
Run Code Online (Sandbox Code Playgroud)

编译器说Type c does not conform to protocol 'p',这可能是因为您不能同时使用 @objc 可选和扩展(并且在这种情况下也没有意义)。但请考虑以下示例:

我想在我的扩展中的协议中定义的非可选方法上设置一个选择器(我使用@objc的主要原因):

func f1() { }->func f1() { ... #selector(Self.f2) ... }

我也希望我的f2()函数具有默认行为。如果我标记f2()optional,则不能使用它,#selector因为编译器不知道该方法是否确实存在于需要的情况下。当然有很多令人讨厌的解决方法,例如全局方法、将Selectors 作为输入发送给方法等,但是有没有一种干净的方法来实现它?


这是实际问题

@objc
protocol Refreshable {
    weak var refreshControl: UIRefreshControl? { get set }
    optional func …
Run Code Online (Sandbox Code Playgroud)

protocols objective-c ios swift swift-extensions

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