2010-05-11 60 views
3

我嘗試定製中的UITabBar一樣iPhone提供自定義UITabBarItem不圓邊

我伸出uitabbar項目,現在在它的自定義圖像,但我不能擺脫圓滑的邊。

代碼:

@interface CustomTabBarItem : UITabBarItem 
{ 
    UIImage *customHighlightedImage; 
} 

@property (nonatomic, retain) UIImage *customHighlightedImage; 

@end 

@implementation CustomTabBarItem 

@synthesize customHighlightedImage; 

- (void) dealloc 
{ 
    [customHighlightedImage release]; customHighlightedImage=nil; 
    [super dealloc]; 
} 

-(UIImage *) selectedImage 
{ 
    return self.customHighlightedImage; 
} 

@end 

也許somoen知道如何提前 擺脫了圓角的矩形

圖像周圍的

感謝亞歷克斯

回答

3

感謝與尚未得到批准的自定義標籤欄項目

不是蘋果解決了這個問題。

進入tabController1.m

- (id) init 
{ 
    if(self = [super init]) 
    { 
     CustomTabBarItem *tabItem = [[CustomTabBarItem alloc] 
            initWithTitle:@"" image:nil tag:0]; 

     tabItem.customHighlightedImage=[UIImage imageNamed:TABBAR_TAB_4_ACTIVE]; 
     tabItem.customStdImage=[UIImage imageNamed:TABBAR_TAB_4_DEFAULT];  

     self.tabBarItem=tabItem; 
     [tabItem release]; 
     tabItem=nil;  
    } 
    return self; 
} 

對自定義tabbaritem:

@interface CustomTabBarItem : UITabBarItem 
{ 
    UIImage *customHighlightedImage; 
    UIImage *customStdImage; 
} 

@property (nonatomic, retain) UIImage *customHighlightedImage; 
@property (nonatomic, retain) UIImage *customStdImage; 

@end 

#import "CustomTabBarItem.h" 


@implementation CustomTabBarItem 

@synthesize customHighlightedImage; 
@synthesize customStdImage; 

- (void) dealloc 
{ 
    [customHighlightedImage release]; customHighlightedImage=nil; 
    [customStdImage release]; customStdImage=nil; 
    [super dealloc]; 
} 

-(UIImage *) selectedImage 
{ 
    return self.customHighlightedImage; 
} 

-(UIImage *) unselectedImage 
{ 
    return self.customStdImage; 
} 

@end 
+0

這是由蘋果批准? – CVertex 2010-10-15 06:08:41

+0

是的,它被批准了。搜索「cinemaxx」 – 2010-10-15 09:52:28

+0

亞歷克斯,你是如何獲得紅/紫色背景以佔用按鈕的整個空間的? – Travis 2010-10-28 04:32:09

1

的視圖設置cornerRadius已經圓角,以0:

view.layer.cornerRadius = 0; 

此外,你可能需要添加的#include得到的CALayer聲明:

#import <QuartzCore/QuartzCore.h> 
+1

謝謝。似乎工作 – 2010-05-11 17:23:21

4

這是骯髒的 - 但作品並得到批准:

  • 調整大小的TabBar
  • 中tabviewcontroller1 init方法

    - (id) init 
    { 
        if(self = [super init]) 
        {  
         CustomTabBarItem *tabItem = [[CustomTabBarItem alloc] 
                initWithTitle:@"" image:nil tag:0]; 
    
         tabItem.customHighlightedImage=[UIImage imageNamed:TABBAR_TAB_1_ACTIVE]; 
         tabItem.customStdImage=[UIImage imageNamed:TABBAR_TAB_1_DEFAULT];  
    
         self.tabBarItem=tabItem; 
         [tabItem release]; 
         tabItem=nil; 
        } 
    
    return self; 
    } 
    

    ,它看起來像

    @interface CustomTabBarItem : UITabBarItem 
        { 
         UIImage *customHighlightedImage; 
         UIImage *customStdImage; 
        } 
    
        @property (nonatomic, retain) UIImage *customHighlightedImage; 
        @property (nonatomic, retain) UIImage *customStdImage; 
    
        @end 
    
    #import "CustomTabBarItem.h" 
    
    
    @implementation CustomTabBarItem 
    
    @synthesize customHighlightedImage; 
    @synthesize customStdImage; 
    
    - (void) dealloc 
    { 
        [customHighlightedImage release]; customHighlightedImage=nil; 
        [customStdImage release]; customStdImage=nil; 
        [super dealloc]; 
    } 
    
    -(UIImage *) selectedImage 
    { 
        return self.customHighlightedImage; 
    } 
    
    -(UIImage *) unselectedImage 
    { 
        return self.customStdImage; 
    } 
    
    @end 
    
    自定義標籤欄使用自己的圖像在自己的大小

在該選項卡控制器設置

tabController = [[UITabBarController alloc] init]; 
tabController.view.frame = CGRectMake(0, 72, 320, 480 - (82)); 
tabController.delegate = self; 
UIImageView *bgImageView; 
bgImageView = [ [ UIImageView alloc ] initWithImage: [UIImage imageNamed:TABBAR_BACKGROUND]]; 
bgImageView.frame = CGRectMake(0, -11, 320, 60); 

[[tabController tabBar] addSubview:bgImageView]; 
[[tabController tabBar] sendSubviewToBack:bgImageView]; 
tabController.tabBar.frame = CGRectMake(0, 460 - (59 + 52 - 11), 320, 49); 
[bgImageView release]; 

[window addSubview:tabController.view]; 

重要:

我是相當新的iPhone開發和漂亮,漂亮,舒爾,你可以做這樣少哈克。此外,我獲得了批准,這並不意味着你也會自動運行。

1

我在上面執行的查詢。

按照蘋果,我們不應該使用私有/未記錄的API,

在上面的代碼,這兩種方法

-(UIImage *) selectedImage { 
    return self.customHighlightedImage; } 

-(UIImage *) unselectedImage { 
    return self.customStdImage; } 

這些方法不是在自定義子類CustomTabBarItem定義。

這些方法的未記錄/隱藏方法在UITabBarItem類和在CustomTabBarItem類中重寫。

覆蓋無證方法可以嗎?

我仍然很驚訝這是如何得到蘋果公司批准的。 我需要一些澄清在這裏。

0

Apple通過此驗證碼驗證過的其他應用程序?非常有興趣知道我們是否有權使用selectedImage和unselectedImage方法?