2014-02-06 2 views
-1

나는 긴 메시지와 함께 uialertview을 보여줍니다 코드가 있습니다잘못된 uialertiview

alert = [[UIAlertView alloc] initWithTitle:@"looong text" message:@"text to loong" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
UITextField *myTextField = [alert textFieldAtIndex:0]; 
myTextField.delegate = self; 
[alert show]; 
alert.frame = CGRectMake(
    alert.frame.origin.x, 
    alert.frame.origin.y - 50, 
    alert.frame.size.width, 
    300); 

을하지만 수 :

this instead

+0

당신이 스크린 샷과 함께 줄을하지 않는 것 같습니다 제공하는 코드입니다. 또한 – Aaron

+0

메시지의 텍스트가 잘못되었음을 분명히하십시오. –

+0

텍스트를보다 간결하게 만들고 프레임을 명시 적으로 설정하지 마십시오. 원하는 것이 맞지 않을 경우 사용자 정의보기 컨트롤러를 만들어서 제시하십시오. – Wain

답변

4

당신은이 문서에서조차 UIAlertView하지 엉망한다 .

서브 클래스 노트

은 UIAlertView 클래스는 그대로 및 하위 클래스를 지원하지 않는 사용하기위한 것입니다. 이 클래스의보기 계층 구조는 개인이며 수정할 수 없습니다.

자신의보기를 만들고 표시하는 것이 더 좋습니다.

+1

UIAlertView가 여기에서 서브 클래 싱되거나 뷰 계층 구조가 수정 된 것을 볼 수 없습니다. 나는 무엇을 간과하고 있는가? –

+0

크기를 변경해도 신경 쓰지 않아도 작동하지 않습니다. UIAlertView의 디자인/프리젠 테이션은 변경할 수 없습니다. – rckoenes

0

클래스에이 코드를 추가했습니다. 그리고 그것은 나

-(void)willPresentAlertView:(UIAlertView *)alertView { 
    if(alertView.tag == ZIP_CODE_TAG){ 
    if ([[[UIDevice currentDevice] systemVersion] floatValue] <7) 
    { 
     NSArray *subviewArray = [alertView subviews]; 
     UILabel *message = (UILabel *)[subviewArray objectAtIndex:2]; 
     message.lineBreakMode = UILineBreakModeWordWrap; 
     message.numberOfLines = 0; 
     [message setFrame:CGRectMake(10, 95, 260, 100)]; 

     UIButton *okbutton = (UIButton *)[subviewArray objectAtIndex:3]; 
     [okbutton setFrame:CGRectMake(10, 240, 260, 42)]; 

     UIButton *cancelbutton = (UIButton *)[subviewArray objectAtIndex:4]; 
     [cancelbutton setFrame:CGRectMake(10, 287, 260, 42)]; 

     UITextField *textfield = (UITextField *)[subviewArray objectAtIndex:5]; 
     [textfield setFrame:CGRectMake(10, 198, 260, 50)]; 

     UITextField *placeTF = (UITextField *)[subviewArray objectAtIndex:6]; 
     [placeTF setFrame:CGRectMake(15, 188, 256, 50)]; 
    } 
} 

} 좋은 일을