我正在计算动态textView的正确高度。但我在这里得不到正确的高度。我该怎么做才能获得正确的身高。我必须展示一些阿拉伯文字。获得正确尺寸的任何技巧。请帮帮我
CGSize size = [foundationTrimmed sizeWithFont:newsSecondPart.font constrainedToSize: CGSizeMake(newsSecondPart.frame.size.width-11,10000)];
size.height = size.height + 50;
CGRect newsSecondPartFrame = newsSecondPart.frame;
newsSecondPartFrame.size.height = size.height;
newsSecondPart.frame = newsSecondPartFrame;
CGRect CGRectnewsImageFrame = newsImageView.frame;
CGRectnewsImageFrame.origin.y = newsSecondPartFrame.size.height+40;
newsImageView.frame = CGRectnewsImageFrame;
scrollView.contentSize = CGSizeMake( 0, newsSecondPartFrame.size.height+CGRectnewsImageFrame.size.height+ 100);
newsSecondPart.text = foundationTrimmed;
答案 0 :(得分:1)
假设带有两个红点的文本视图是您的textview(处于当前状态)。
textview左上角的红点坐标为(CGRectGetMinX(textview.frame), CGRectGetMinY(textView.frame))
。
textview右下角的红点坐标为(CGRectGetMaxX(textview.frame), CGRectGetMaxY(textview.frame))
。
这是因为UIViews坐标系的几何形状导致“x”坐标在向右移动时增加,而“y”坐标在向下移动时增加,因此原点位于最左上角的观点。
您想要视图的高度,因此您有三个选项:
选项1。第一个选项是减去textview的底部y坐标和y坐标,如下所示:
int heightOfTextView = (CGRectGetMaxY(textview.frame)) - (CGRectGetMinY(textview.frame));
选项2。第二个选项是根据textview的边界简单地获取最大y坐标。首先,您应该了解视图框架及其边界之间的区别。这个框架和边界的定义取自this问题:
UIView的边界是矩形,表示为相对于其自身坐标系(0,0)的位置(x,y)和大小(宽度,高度)。
UIView的框架是矩形,表示为相对于其所包含的超级视图的位置(x,y)和大小(宽度,高度)。
所以你会为第二个选项做到这一点:
int heightOfTextView = CGRectGetMaxY(textview.bounds);
选项3。此选项实际上是最简单的方法:
int heightOfTextView = textview.bounds.size.height;
使用三个选项中的任何一个,您最终得到文本视图的正确高度,并且可以将此代码放在您想要计算textview高度的任何位置。请注意:如果您使用setBoundsOrigin:
更改边界,则第二个选项将无效,但您不太可能使用textview进行更改。
希望这有帮助!