首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有圆边的Iphone自定义UITabBarItem

没有圆边的Iphone自定义UITabBarItem
EN

Stack Overflow用户
提问于 2010-05-11 23:15:34
回答 5查看 10.4K关注 0票数 3

我尝试自定义一个uitabbar

我扩展了uitabbar项目,现在它有一个自定义的图像,但我不能摆脱圆角的边缘。

代码:

代码语言:javascript
复制
@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

也许索莫恩知道如何去掉圆角直齿。

在图像周围

提前谢谢你,亚历克斯

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-05-27 20:24:23

感谢您使用自定义选项卡栏项目解决了此问题

尚未获得苹果公司的批准。

进入tabController1.m

代码语言:javascript
复制
    - (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;
}

cutom tabbaritem:

代码语言:javascript
复制
@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
票数 3
EN

Stack Overflow用户

发布于 2010-10-28 17:35:31

这是脏的-但工作并获得批准:

  • 调整选项卡栏大小
  • 使用自己大小的图像

在标签控制器设置中

代码语言:javascript
复制
    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];

在tabviewcontroller1初始化方法中

代码语言:javascript
复制
   - (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;
}

自定义选项卡栏看起来像

代码语言:javascript
复制
    @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

重要信息:

我是iphone开发的新手,你可以用这种方式做的不那么麻烦。此外,我也同意这一点,这并不意味着你也会自动同意。

票数 4
EN

Stack Overflow用户

发布于 2010-05-12 00:01:48

将具有圆角的视图上的cornerRadius设置为0:

代码语言:javascript
复制
view.layer.cornerRadius = 0;

此外,您可能需要添加一个#include来获取CALayer声明:

代码语言:javascript
复制
#import <QuartzCore/QuartzCore.h>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2811905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档