我有一个UILabel
,其中包含我在UIScrollView
中创建的属性字符串:
CGRect frame = self.view.frame;
frame.origin.x = 10;
frame.size.width -= 10;
frame = CGRectIntegral(frame);
UILabel *textView = [[UILabel alloc] initWithFrame:frame];
textView.numberOfLines = 0;
textView.lineBreakMode = NSLineBreakByWordWrapping;
textView.backgroundColor =[UIColor clearColor];
[self addSubview:textView];
尽管确保使用CGRectIntegral
设置了框架,但iOS模拟器仍然将标签显示为未对齐。
为了试图摆脱错位,我也试了一下没有运气:
textView.frame = CGRectIntegral(textView.frame);
textView.bounds = CGRectIntegral(textView.bounds);
带有属性字符串的UILabel
可以在scrollView中正确对齐吗?
答案 0 :(得分:1)
我不确定它会解决你的问题,但你没有什么可失去尝试另一种方法:
CGRect frame = CGRectOffset(CGRectInset(self.view.frame,5,0),5,0);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = @"Test";
[self addSubview:label];
如果它不起作用,则错误可能来自您的标签本身(可能是adjustsFontSizeToFitWidth
,lineBreakMode
,sizeToFit
或contentMode
)。您的所有标签代码都在这里?
尝试增量调试,因为它可能根本不是来自帧。
答案 1 :(得分:0)
你设置了frame.origin.x = 10;尝试将其设置为零。