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

mem*_*ons 6 iphone cocoa-touch uilabel ios 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];
Run Code Online (Sandbox Code Playgroud)

尽管确保使用框架设置CGRectIntegral,iOS模拟器仍然会将标签显示为未对齐.

标签错位

为了试图摆脱不对中,我也试了一下没有任何运气:

textView.frame = CGRectIntegral(textView.frame);
textView.bounds = CGRectIntegral(textView.bounds);
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*scu 1

我不确定它会解决您的问题,但尝试另一种方法不会有什么损失:

CGRect frame = CGRectOffset(CGRectInset(self.view.frame,5,0),5,0);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = @"Test";
[self addSubview:label];
Run Code Online (Sandbox Code Playgroud)

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

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