2009-09-08 9 views

답변

9

alertView의 하위 뷰를 가져와야합니다. 하위 뷰의 배열을 반복하면 UILable 유형의 항목이 하나 있습니다. 서브 뷰 배열에서 UILabel을 가져 오면 textAlignment 속성을 설정할 수 있습니다.

NSArray *subViewArray = alertView.subviews; 
for(int x=0;x<[subViewArray count];x++){ 
if([[[subViewArray objectAtIndex:x] class] isSubclassOfClass:[UILabel class]]) 
    { 
     UILabel *label = [subViewArray objectAtIndex:x]; 
    label.textAlignment = UITextAlignmentCenter; 
    } 

} 
+0

작동. 감사. 하지만 작은 오타가 있습니다. 첫 번째 줄의 "subViews"는 "하위보기"여야합니다 :-) – Mayoneez

+1

실제로 "하위보기"여야합니다! : D – Mona

9

이것은 이전 답변의 약간 단순화 된 버전이지만 일을 단순하게 유지하는 것이 좋습니다. :)

for (UIView *view in alert.subviews) { 
    if([[view class] isSubclassOfClass:[UILabel class]]) { 
     ((UILabel*)view).textAlignment = NSTextAlignmentLeft; 
    } 
} 
+0

+1, 간단하고 작은 코드. 감사합니다 :) – mAc

+2

'UITextAlignmentLeft'은 더 이상 사용되지 않습니다.'NSTextAlignmentLeft'를 사용하십시오 –

1

아래 코드는 iOS7에서만 작동합니다.

for (UIView *view in alert.subviews) { 
    if([[view class] isSubclassOfClass:[UILabel class]]) { 
     ((UILabel*)view).textAlignment = NSTextAlignmentLeft; 
    } 
} 

질문 : Align message in UIAlertView to left in iOS 7이이 문제를 해결합니다.

+1

더 이상 iOS 10에 따라 작동하지 않습니다. – DrMickeyLauer

관련 문제