当前位置:编程学习 > wap >>

订制IOS系统控件要注意的问题

通常在定制系统控件时,一般要遍历控件内的subviews,如下在定制UIAlertView时

[html] 
-(void)willPresentAlertView:(UIAlertView *)alertView{ 
    for (UIView* view in [alertView subviews]) 
    {       
        //判断如果是UILabel 
        if ([[[view class] description] isEqualToString:@"UILabel"]) 
        {             
            //针对UILabel做定制操作                      
        }         
        //判断如果是UIButton 
        if ([[[view class] description] isEqualToString:@"UIAlertButton"] 
            || [[[view class] description] isEqualToString:@"UIThreePartButton"]) 
        { 
            //针对UIButton做定制操作             
        }         
    } 

使用 [[[view class] description] isEqualToString:@"UIAlertButton"] 方法判断当前View是不是一个按钮时,有个弊端,因为[[view class] description]在不同的设备上有不同的描述,所以在以上的方法中使用了UIAlertButton或者UIThreePartButton,当然甚至还有更多。
其实完全不需要这样判断,可以使用[view isKindOfClass:NSClassFromString(@"UIButton")]来判断,也不用区分不同的设备,修改后的方法如下:

[html]
-(void)willPresentAlertView:(UIAlertView *)alertView{ 
    for (UIView* view in [alertView subviews]) 
    {       
        //判断如果是UILabel 
        if ([view isKindOfClass:NSClassFromString(@"UILabel")]) 
        {             
            //针对UILabel做定制操作                      
        }         
        //判断如果是UIButton 
        if ([view isKindOfClass:NSClassFromString(@"UIButton")]) 
        { 
            //针对UIButton做定制操作             
        }         
    } 


 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,