2010-06-01 4 views
1

나는 어디서 UILabel의 텍스트가 끝나고 x와 y의 좌표로 그 좌표를 얻고 싶은지를 알고 싶습니다. 그런 다음 UILabel 텍스트의 마지막 단어 바로 뒤에 이미지를 삽입해야합니다. 이 이벤트는 앱에서 특정 이미지를 클릭하면 시작됩니다. UILabel 텍스트의 끝 문자 x와 y는 무엇입니까?iphone app 사용자 정의 이미지 UILabel 내부

감사 AYAZ의 alavi

답변

0

iphone 및 UI textarea에서 지원하는 유니 코드 스마일을 사용하여이 문제를 해결했습니다. 그래서 나는 필드의 텍스트에 유니 코드 문자를 계속 덧붙이고 이미지를 계속 보여줍니다.

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

양의 접근 방식은 괜찮은 것처럼 보이지만 어떤 이유로 텍스트의 크기를 조정하고 싶지 않으면 텍스트가 바뀝니다. 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); 
관련 문제