2017-07-25 75 views
0

我们如何利用extension设置默认值?例如,如果我在storyboard创建UILabel,我设置文本值在storyboard“TOTO”。现在我想创建一个扩展,以便在应用程序中初始化标签时将我的文本值设置为“popo”。 为了更清楚地说明,我想要在整个应用程序中为我的UILabel设置一个默认值。希望这是明确的。在init中设置属性,在swift中有扩展名?

extension UILabel { 
    open override func ??? { 
     self.text == "popo" 
    } 
} 

请不要告诉我在故事板中设置ma值因为这不是我所需要的。

回答

2

可以为text属性“默认”值被设置在一个Storyboard创建的标签?是。

这是一个好主意吗?也许不是...

说了这么多,你可以做的是覆盖awakeFromNib(视图从情节提要/护理文件加载后调用):

extension UILabel { 

    open override func awakeFromNib() { 
     super.awakeFromNib() 
     self.text = "popo" 
    } 

} 
+0

感谢的很多,为什么你认为这是一个坏主意? – Makaille

+0

因为如果你决定在你想要_do_一些标签保留在故事板设置文本后面的阶段,你就必须要么子类,或者手动重新设置你的控制器上的文字。但那只是我的个人意见。它可以使完美的意义在你的项目中,我猜... – Alladinian

+0

我明白了,我从来没有使用设定值故事板的标签,总是从我的本地化字符串,以获得正确的语言或在我的ViewModel一些数据 – Makaille

0

不要创建extension

您应该创建的UILabel子类,它分配给您所需要的地方在故事板

import UIKit 

class MyLabel: UILabel { 


override func awakeFromNib() { 
    super.awakeFromNib() 

    self.text = "POPO" 
} 
} 

你可以使用这个类我ñ故事情节这样

enter image description here