꼼시월드

UIAlertView addSubView ios7 본문

iOS

UIAlertView addSubView ios7

꼼시 2014. 1. 29. 09:27

alertview의 프레임 사이즈를 조절하기 위해서 아래의 코드를 사용해봤는데 프레임 사이즈가 전혀 조절이 되지 않았다.



UIAlertView *myAlertView = [[UIAlertView alloc]initWithFrame:CGRectMake(x, y, width, height)];


ios7에서는 키를 이용하여 alertview에 "accessoryView"를 키로 하고 값에 UIView 속성의 뷰를 넣어주면 alertview의 프레임 사이즈가 늘어나는데, 내부의 title, messeage, accessoryView의 레이어들을 이용하여  alertview의 사이즈를 조절하는것같다.



    //alertview에 넣을 뷰
    UIImageView *imageView = [[UIImageView alloc]init];
    [imageView setBackgroundColor:[UIColor greenColor]];
    [imageView setFrame:CGRectMake(0, 0, 100, 161)];
    
    UIAlertView *alertview = [[UIAlertView alloc] init];
    [alertview setMessage:@"잠시만 기다려 주세요..."];
    [alertview setValue:imageView forKey:@"accessoryView"];
    [alertview show];




주의할점은 [alertview show]; 전에 [alertview setValue:imageView forKey:@"accessoryView"]; 를 먼저 호출해야 하는 것이다. 


alertview의 프레임을 변경하는 방법을 검색하다보니 여러가지가 있었는데 상속을 이용해서 drawRect 오버라이딩, setFrame, delegate method를 이용하는 방법, accessoryView에 뷰를 넣는 방법 등이 검색 되는데 나의 경우엔 맨 마지막 방법 외에는 alertview의 프레임을 변경할 수 없었다.


결과화면 







ios6이하 버전에서 위와같은 방법이 잘 되는지 테스트해보지 못했는데 아마도 다른 방법으로 구현을 해 줘야 할것 같다.



Comments