ios - Objective C 的 Swift 语法
问题描述
在 Obj CI 中创建了一个属性
@property(nonatomic) UILabel *subscriptionText;
然后我为该属性 UILabel 创建了一个 setter 方法。像下面
-(UILabel *)subscriptionText{
if (!_subscriptionText) {
_subscriptionText = [UILabel new];
_subscriptionText.translatesAutoresizingMaskIntoConstraints = NO;
_subscriptionText.textAlignment = NSTextAlignmentJustified;
}
return _subscriptionText;
}
然后在 viewdidload 我添加这个视图
[self.view addSubview:self.subscriptionText];
如何在 Swift 4.2 中执行相同的场景。
解决方案
延迟初始化是您所需要的。
lazy var subscriptionText: UILabel = {
let label = UILabel()
label.textAlignment = .justified
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
func viewDidLoad() {
super.viewDidLoad()
view.addSubview(subscriptionLabel)
// Label constraints
}
推荐阅读
- graphql - prisma 基于哪个数据库服务器?
- microsoft-translator - Microsoft Translator Text API 打破 notranslate spans
- android - 如何检查 Firebase 中的现有数据?
- c# - 可空类型究竟什么时候抛出异常?
- hadoop - 使用 Apache Solr 导入或索引 Hive/HDFS 数据
- php - 如何在 Sonata Admin(Symfony 3.3、PHP 7)中使用自定义 javascript 为模态窗口扩展模板?
- amazon-web-services - 通过此更改,我会获得更好的 dynamodb 吞吐量吗?
- python - 如何在熊猫数据框中指定列类型
- tensorflow - 如何使用在 CPU 上使用 CudnnLSTM 在 GPU 上训练的模型?
- node.js - 将日期时间从 Angular 发送到 Nodejs 的正确方法是什么?