我有一个场景,我想找到UILabel中文本的结尾,并根据x和y得到它的坐标。然后我需要在UILabel文本的最后一个单词之后插入图像。当我点击app中的特定图片时,将触发此事件。如何找到UILabel文本的结尾字符的x和y是什么?
此致 ayaz alavi
答案 0 :(得分:2)
Yang的方法看起来很好,但是如果你不想因某种原因调整标签大小(文本居中,文本会改变等等),你可以在NSString中使用UIKit添加。当然,这只适用于单行标签。
CGSize textSize = [label.text sizeWithFont:label.font];
CGFloat imgX;
CGFloat imgY = label.frame.origin.y - imageView.frame.size.height;
if(label.textAlignment == UITextAlignmentLeft) {
imgX = label.frame.origin.x + textSize.width;
} else if(label.textAlignment == UITextAlignmentCenter) {
imgX = label.frame.origin.x + textSize.width / 2.0;
} else if(label.textAlignment == UITextAlignmentRight) {
// This part really depends on what you want to do in this case
imgX = label.frame.origin.x
+ label.frame.size.width
- textSize.width
- imageView.frame.size.width;
}
imageView.frame = CGRectMake(imgX,
imgY,
imageView.frame.size.width,
imageView.frame.size.height);
答案 1 :(得分:1)
您可以调整标签大小,然后获取坐标并将其用于图像视图:
[_label sizeToFit];
CGFloat x = _label.frame.origin.x + _label.frame.size.width;
CGFloat y = _label.frame.origin.y + _label.frame.size.height;
_imageView.frame = CGRectMake(x, y, imageWidth, imageHeight);
(请注意,使用这种方法,您会遇到多行标签的问题,其中最后一行不是最长的。)
答案 2 :(得分:0)
我通过使用iphone和UI textarea支持的unicode表情解决了这个问题。所以我只是继续在字段中的文本中添加unicode字符,并继续向我显示图像。