Этот вопрос следует из Is there a neat way to represent a fraction as an attributed string?.Где разместить разные широко используемые функции?
У меня есть функция, которая обеспечивает шрифт для фракции строки
func fractionFont() -> UIFont {
let pointSize = CGFloat(20.0)
let systemFontDescriptor = UIFont.systemFontOfSize(pointSize, weight: UIFontWeightLight).fontDescriptor()
let fractionFontDescriptor = systemFontDescriptor.fontDescriptorByAddingAttributes(
[
UIFontDescriptorFeatureSettingsAttribute: [
[
UIFontFeatureTypeIdentifierKey: kFractionsType,
UIFontFeatureSelectorIdentifierKey: kDiagonalFractionsSelector,
], ]
])
return UIFont(descriptor: fractionFontDescriptor, size: pointSize)
}
и я в ней для свойства этикетки в SomeClass
class SomeClass {
@IBOutlet weak var fractionLabel: UILabel! {
didSet {
fractionLabel.text = "1/2"
fractionLabel.font = fractionFont()
}
}
}
сказать я хочу использовать fractionFont
метод снова AnotherClass
Я предполагаю, что копирование кода - отличная идея. Я также советовал в другой должности использовать так называемые классы Singleton
экономно, так что лучший подход для этого?
- благодаря
Лучшая часть о том, что Swift позволит вам ссылаться на метод класса без имени класса, если тип выведено. 'fractionLabel.font = .fractionFont()' –
@mipadi great - в чем заключается практика добавления этих расширений - в выделенный файл .swift? – Alex
@Alex: Если есть другой файл, это имеет смысл (возможно, что-то касающееся шрифтов или других деталей пользовательского интерфейса), я бы добавил его там. В противном случае отдельный файл будет в порядке. – mipadi