2009-12-08 4 views
0

이 내가 형태로 촬영 한 코드입니다 .....이 사용자 정의 uialertview는 어떻습니까?

- (void)willPresentAlertView:(UIAlertView *)alertView 
    { 
     [[[alertView subviews] objectAtIndex:2] setBackgroundColor:[UIColor colorWithRed:0.5 green:0.0f blue:0.0f alpha:1.0f]]; 
    } 

    - (void) presentSheet 
    { 
     UIAlertView *baseAlert = [[UIAlertView alloc] 
            initWithTitle:@"Alert" message:@"This alert allows the user to choose between a 'safe' and a 'deadly' choice, indicated by button color.\n\n\n\n" 
            delegate:self cancelButtonTitle:nil 
            otherButtonTitles:@"Deadly!", @"Safe", nil]; 
UITextField *txtFld = [[UITextField alloc] initWithFrame:CGRectMake(60,10,240,31)]; 
[txtFld setDelegate:self]; 
[txtFld setBackgroundColor:[UIColor clearColor]]; 
[baseAlert addSubView:txtFld]; 
[txtFld release]; 
     [baseAlert show]; 
    } 

는 사과의 제공 UIControls의 기본 모양과 느낌을 변경할 수있는 경우 내가 어떤 이유로 사과 것을 볼 해달라고 때문에 내 질문입니다 이러한 유형의 맞춤 설정을 허용해서는 안됩니다.

답변

7

경고 표시가 오랫동안 표준화 되었기 때문에 소화기 및 안전 표지와 같은 항목이 표준화되었습니다. 즉, 문제가 발생하는 동안 사람들이 새로운 인터페이스를 사용하지 못하게하려는 것입니다.

일반적으로 고도로 표준화 된 인터페이스에서 뭔가를 변경하는 것은 좋지 않습니다. 최종 사용자에게 어떤 이점이 있습니까? 그들은 생각합니다, "젠장, 나는 모든 데이터를 잃어 버렸지 만, 확실히 예술적으로 보였다는 경고가 나왔다." 대화 상자가 실제로 경고이지만 오히려 응용 프로그램 정상 기능의 일부라는 것을 이해하지 못할 수도 있습니다.

모든 것을 말하면, 사용자 정의보기를 만들고 모달로 표시하는 것을 막을 수있는 방법은 없습니다. 그것은 Apple API의 두건에 관하여 조롱하는 것보다 훨씬 안전하고 쉬운 방법입니다.

3

Apple에서 문서화되지 않은 하위보기에 액세스하는 앱을 거부할지 모르겠지만 반대 의견을 제시하는 것은 좋습니다. 사실, 지난 주에 iPhone 기술 토론회에 참석했을 때 개발자 전도사는 구현이 바뀌고 앱이 중단되기 때문에 구체적으로하지 않겠다고 말했습니다.

+0

텍스트 필드, 버튼 등을 추가하는 것과 같은 하위보기를 추가해도 사과로 인해 약간의 문제가 있습니까? –

+0

그럴 수도 있습니다. 예를 들어 UITextField를 하위보기로 추가 한 다음 bringSubviewToFront : 메시지를 보내면 벗어날 수 있습니다. 그러나이 경우조차도 나머지 경고 뷰를 "늘려야"할 것이므로 여전히 내부를 망칠 것입니다. 장기적으로 볼 때 자신 만의 시각을 만드는 것이 더 나을 것입니다. – bpapa

관련 문제