gpt4 book ai didi

iphone - UIView子类默认属性

转载 作者:行者123 更新时间:2023-12-03 20:27:04 27 4
gpt4 key购买 nike

为 UIView 子类的属性设置默认值的正确方法是什么?

虽然我还没有使用它们,但如果 XIB 提供了一个值,我希望它能够覆盖默认值。但如果 XIB 未提供值,我需要默认值。

在本例中,我专门考虑了 CGFloat 值。虽然它可以设置为 0.0,但这不是一个有用的默认值,因此我宁愿避免在代码中检查 0.0 值并将其替换为更好的值。

最佳答案

在您的子类中实现 initWithFrame: 并在那里设置属性。

- (id)initWithFrame:(CGRect)aRect {
if (self = [super initWithFrame:aRect]) {
// Set whatever properties you want. For example...
self.alpha = 0.75;
}
return self;
}

只有在代码中构造 View 时,此指定的初始值设定项才会执行。如果 View 来自 nib 文件,它将使用 initWithCoder: 进行初始化,这会修改属性以匹配 nib 文件中的属性。要处理这种情况,您可以重写 initWithCoder:,测试该属性是否设置为其默认值,如果是,则更改它:

- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {
if (self.alpha == 1.0) {
self.alpha = 0.20;
}
}
return self;
}

关于iphone - UIView子类默认属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1467361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com