代码之家  ›  专栏  ›  技术社区  ›  Madhup Singh Yadav

这个自定义的uiAlertView怎么样?

  •  0
  • Madhup Singh Yadav  · 技术社区  · 15 年前

    这是我制定的准则……

      - (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的基本外观和感觉,因为我看不出苹果不允许这种定制的任何理由。

    2 回复  |  直到 15 年前
        1
  •  7
  •   TechZen    15 年前

    警报视图长期以来一直被标准化,原因相同,比如灭火器和安全标志都是标准化的,也就是说,当出现问题时,你不希望人们不得不拼凑出一个新的界面。

    一般来说,更改接口中高度标准化的内容是一个坏主意。它会给最终用户带来什么好处?他们会不会想,“该死,我把所有的数据都丢了,但我的警觉告诉了我,这看起来确实很有艺术性!”更可能的是,他们不会理解对话实际上是一个警报,而是应用程序正常运行的一部分。

    说了这么多,没有什么可以阻止你创建你自己的自定义视图并以形式呈现它。这是一个比在苹果API的兜帽下胡闹更安全、更容易的方法。

        2
  •  3
  •   bpapa    15 年前

    我不知道苹果是否会拒绝一个访问未记录的子视图的应用程序,但他们肯定会反对。事实上,上周我在iPhone技术讲座上,一位开发者传道者明确表示不要这样做,因为实现会改变,你的应用程序也会崩溃。