尽管使用CGRectIntegral,UIScrollView中的UILabel未对齐?

时间:2013-10-10 21:54:52

标签: iphone ios cocoa-touch uilabel ios-simulator

我有一个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模拟器仍然将标签显示为未对齐。

Misaligned label

为了试图摆脱错位,我也试了一下没有运气:

textView.frame = CGRectIntegral(textView.frame);
textView.bounds = CGRectIntegral(textView.bounds);

带有属性字符串的UILabel可以在scrollView中正确对齐吗?

2 个答案:

答案 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];

如果它不起作用,则错误可能来自您的标签本身(可能是adjustsFontSizeToFitWidthlineBreakModesizeToFitcontentMode)。您的所有标签代码都在这里?

尝试增量调试,因为它可能根本不是来自帧。

答案 1 :(得分:0)

你设置了frame.origin.x = 10;尝试将其设置为零。