gpt4 book ai didi

iphone - iPhone函数创建UILabel失败并崩溃

转载 作者:行者123 更新时间:2023-12-03 15:57:21 25 4
gpt4 key购买 nike

我有一个带有scrollview的 View 。我使用代码向滚动 View 添加标签。由于有很多冗余代码,因此我尝试将标签创建移至返回UILabel的单独函数。这里是那个功能:

- (UILabel *)   f_MakeLabelWithL:(float)MyLeft T:(float)MyTop W:(float)MyWidth H:(float)MyHeight Align:(UITextAlignment)MyAlign 
Font:(UIFont *)MyFont TextColor:(UIColor *)MyTextColor BGColor:(UIColor *)MyBGColor {

CGRect rect = CGRectMake(MyLeft, MyTop, MyWidth, MyHeight);
UILabel *label = [[[UILabel alloc] initWithFrame:rect] autorelease];

label.adjustsFontSizeToFitWidth = YES;
label.backgroundColor = MyBGColor;
label.font = MyFont;
label.numberOfLines = 0;
label.textAlignment = MyAlign;
label.textColor = MyTextColor;

return label;
}

返回标签后,我设置标签的文本。还是我想要的。实际上,被告知具有蓝色背景的标签显示为纯黑色矩形。一个背景清楚的人是完全清楚的。更糟糕的是:scrollview不会滚动,并且尝试这样做会使应用程序崩溃,而在调试器控制台中没有任何说明。

然而,所有这些代码都可以内联地很好地工作。

有人知道为什么吗?

更新:将代码置于行内可固定标签的显示。但是我还使用了一个函数来创建图像:
- (UIImageView *) f_MakeImageWithL:(float)MyLeft T:(float)MyTop W:(float)MyWidth H:(float)MyHeight File:(NSString *)MyFile {
CGRect rect = CGRectMake(MyLeft, MyTop, MyWidth, MyHeight);
UIImageView *oImageView = [[[UIImageView alloc] initWithFrame:rect] autorelease];

NSString *s = [[Isystant f_DocumentsPath] stringByAppendingPathComponent:MyFile];
UIImage *oImage = [UIImage imageWithContentsOfFile:s];
[oImageView setImage:oImage];
oImageView.backgroundColor = [UIColor redColor];
oImageView.opaque = YES; // explicitly opaque for performance

return oImageView;
}

它正在创建图像,但是冻结的滚动/崩溃问题直到我也将此代码放回内联后才消失。

最佳答案

在我看来,您正在过度释放UILabel。如果在标签 View 之前从未保留过标签,则不必在将标签添加到滚动 View 后释放标签(并且已在makeImageWithL方法中自动释放了标签)。

这可能就是为什么当您将其内联时它可以工作的原因……因为在这种情况下,我敢打赌您要删除自动发行版,对吗?

-S

关于iphone - iPhone函数创建UILabel失败并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660611/

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