九宫格的实现

原文来自http://www.ieliwb.com/iphone-nine-box/

九宫格效果图:

核心就这2个方法:

//Power by ieliwb.com
( void ) viewDidLoad   {
    
[ super   viewDidLoad ] ;
    
    
NSArray imageNames  =  [ NSArray   arrayWithObjects :
                                        @
" ico_mobile.png "
                                        @
" ico_idcard.png "
                                        @
" ico_postcode.png " ,
                                        @
" ico_flight.png "
                                        @
" ico_translate.png " ,
                                        @
" ico_phone.png "
                                        @
" ico_car.png "
                                        @
" ico_health.png "
                                        @
" ico_bjxm.png " nil ] ;
 
    
UIButton  * Btn ;
    
for   ( int   i = 0 i < 9 i ++ )   {
        
CGRect   frame ;
        
Btn  =  [[ UIButton   buttonWithType : UIButtonTypeCustom ]   retain ] ;
        
[ Btn   setImage : [ UIImage   imageNamed : [ imageNames   objectAtIndex i ]]   forState : UIControlStateNormal ] ; //设置按钮图片
        
        
Btn . tag  =  i ;
        
        
frame . size . width  =  59 ; //设置按钮坐标及大小
        
frame . size . height  =  75 ;
        
frame . origin . x  =  ( i % 3 ) * ( 59 + 32 ) + 40 ;
        
frame . origin . y  =  floor ( i / 3 ) * ( 75 + 24 ) + 40 ;
        
[ Btn   setFrame : frame ] ;
        
        
[ Btn   setBackgroundColor : [ UIColor   clearColor ]] ;
        
[ Btn   addTarget : self   action :@ selector ( btnPressed : ) forControlEvents : UIControlEventTouchUpInside ] ;
        
[ self . view   addSubview : Btn ] ;
        
[ Btn   release ] ;
        
    
}
        
}
 
//响应按钮事件
-
( void ) btnPressed : ( id ) sender {
    
UIButton  * Btn  =  ( UIButton  * ) sender ;
        
int   index  =  Btn . tag ;
    
    
switch   ( index )   {
        
case   0 :
            
if ( mobileController == nil )
                
mobileController  =  [[ MobileController   alloc ] init ] ;
            
[ self . navigationController   pushViewController : mobileController animated : YES ] ;
            
break ;
        
//其他几个控制器类似
    
}
 
}

九宫格背景修改可以这样实现:

( void ) loadView   {
    
UIImageView  * contentView  =  [[ UIImageView   alloc ]   initWithFrame : [[ UIScreen mainScreen ]   applicationFrame ]] ;
    
[ contentView   setImage : [ UIImage   imageNamed :@ " subview_9_bg.png " ]] ;
    
[ contentView   setUserInteractionEnabled : YES ] ;
    
self . view  =  contentView ;
    
[ contentView   release ] ;
}

UINavigationBar背景图片可以这样实现:

@ implementation   UINavigationBar   ( CustomImage )
( void ) drawRect : ( CGRect ) rect   {
    
UIImage  * image  =  [ UIImage   imageNamed : @ " top_bg.png " ] ;
    
[ image   drawInRect : CGRectMake ( 0 0 self . frame . size . width , self . frame . size . height )] ;
}
@
end

—-End—-

你可能感兴趣的:(实现)