gpt4 book ai didi

iOS:继承 UILabel 并更新其缩进

转载 作者:行者123 更新时间:2023-11-28 20:29:05 25 4
gpt4 key购买 nike

我有一个应用程序,其中包含一个非常大的表单。我将 UILabel 子类化,这样我就可以在表单标签中保持一致。但是,一些标签将成为具有背景颜色的部分分隔符,并且它们需要缩进。

我知道我可以在 UILabel 实例化时使用此代码覆盖它的缩进设置:

- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 5};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}

但这会向所有标签添加插图。不是我想要的。

所以我所做的是写了一个自定义方法:

- (void) makeInsets
{
CGRect rect = self.frame;

if (hasInset) {
UIEdgeInsets insets = {0, 5, 0, 5};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
} else {
UIEdgeInsets insets = {0, 0, 0, 0};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
}

问题在于它发生在绘制 UILabel 之后。我尝试了 [UILabelSubclass setNeedsDisplay:YES] 但是 setNeedsDisplay 方法出现“No visible interface”错误。有没有办法用我的自定义插图覆盖现有的插图?

最佳答案

setNeedsDisplay 出现“No visible interface”错误,因为 the method不接受争论。你应该只写:

[subclassedLabelInstance setNeedsDisplay];

并且该错误应该会消失。它也可能解决问题。

关于iOS:继承 UILabel 并更新其缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937593/

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