пользовательские изображения приложения iphone внутри UILabel - PullRequest
1 голос
/ 01 июня 2010

У меня есть сценарий, в котором я хотел бы найти, где заканчивается текст в UILabel, и получить его координаты в терминах x и y. Затем мне нужно вставить изображение сразу после последнего слова текста UILabel. Это событие будет запущено, когда я нажму на определенное изображение в приложении. Как я могу найти, каковы x и y символа окончания текста UILabel?

С уважением аяз алави

Ответы [ 3 ]

2 голосов
/ 01 июня 2010

Подход Янга кажется хорошим, но если по какой-то причине вы не хотите изменять размер метки (текст центрируется, текст будет изменен и т. Д.), Вы можете использовать дополнения UIKit в NSString. Конечно, это будет работать только для однострочных меток.

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 голос
/ 01 июня 2010

Вы можете изменить размер метки, затем получить координаты и использовать их для просмотра изображения:

[_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);

(Обратите внимание, что при таком подходе у вас возникнут проблемы с многострочными метками, где последняя строка не самая длинная.)

0 голосов
/ 16 августа 2010

Я решил эту проблему с помощью юникод-смайликов, которые поддерживаются текстовыми областями iphone и UI.так что я просто продолжаю добавлять символы юникода к тексту в поле, и он продолжает показывать мне изображения.

...