Objective c UILabel文本有时超出范围

Objective c UILabel文本有时超出范围,objective-c,uilabel,Objective C,Uilabel,这件事我已经纠结了一段时间了 问题是有时使用阿拉伯语字体和多行文字,文本刚从UILabel框架中消失,,,我将添加图像以使其更清晰… UILabel的背景为天蓝色,箭头用于显示错误以及错误的显示方式 编辑: 这是调整大小的代码 //myString contain the text I'm showing.. UIFont *font = [UIFont fontWithName:@"myArabicFont" size:30.0]; self.myLabel.text = myStri

这件事我已经纠结了一段时间了
问题是有时使用阿拉伯语字体和多行文字,文本刚从UILabel框架中消失,,,我将添加图像以使其更清晰…
UILabel的背景为天蓝色,箭头用于显示错误以及错误的显示方式

编辑: 这是调整大小的代码

//myString contain the text I'm showing..

UIFont *font = [UIFont fontWithName:@"myArabicFont" size:30.0];
self.myLabel.text = myString;
self.myLabel.font = font;
NSDictionary *attributes = @{NSFontAttributeName:font};
CGRect rect = [myString boundingRectWithSize:CGSizeMake(265, MAXFLOAT)
                                options:NSStringDrawingUsesLineFragmentOrigin
                             attributes:attributes
                                context:nil];
CGRect frame = self.myLabel.frame;
frame.size.height = rect.size.height;
self.myLabel.frame = frame;

与其测量文本的边界矩形并将其指定给标签,不如让标签自行调整大小。使用自动布局定位标签,设置其
首选MaxLayoutWidth
,然后将文本填充到标签中

此外,很明显,换行模式会产生不同


(另外,不要将属性字符串与标签的“本机”混合使用)属性。我的经验是,标签在这样做时会变得相当混乱。例如,设置标签的
文本
字体
,但如果要设置其
属性文本
,则不要同时设置其
字体
。我无法从您提供的代码判断您是否这样做,因为您没有提供c实际上设置文本的ode。)

如果没有代码,我们不可能看到发生了什么。发布一些关于如何初始化标签、设置文本以及调整其大小以适应文本的代码。检查我的编辑,感谢您指出这一点……对于初学者:您使用265作为边界宽度,您的标签的宽度实际上是265吗?此外,文档还指出,
boundingRectWithSize:
返回必须舍入的分数大小。在使用结果帧的任何部分之前,应先使用
CGRectIntegral(rect)
。另外,您是否尝试过简单地执行
[self.myLabel sizeToFit]
?在这种情况下,结果是一样的还是正确的?首先是的,我的标签的框架是265英寸的xib,,而且这部作品的英文字母没有问题。@AlmasAdilbek我看到了这个博客,你可以玩minLeftSideBearing和minRightSideBearing,我设法解决字体的水平对齐问题,但问题与我的问题不同,如果可行,请告诉我们。