登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

根据所选TabBar item改变大小

[复制链接]
来自: fwql0889 分类: iOS精品源码 上传时间: 2016-4-20 16:09:43
Tag:TabBar button 按钮 item 视图切换 TabBar

项目介绍:

类似 皇室战争 的切换效果。
主要代码,详细可查看 DEMO:
[Objective-C] 查看源文件 复制代码
/** 图标在上,文本在下按钮的图文间隔比例(0-1)*/
#define xm_buttonTopRadio 0.7

@interface HCButton ()
@property (nonatomic, strong) UILabel * badgeValueLabel;

@end

@implementation HCButton

+ (instancetype)hc_shareButton{
    
    return [[self alloc] init];
}

-(instancetype)initWithFrame:(CGRect)frame{
    if ([super initWithFrame:frame]) {
        self.badgeValueLabel = [[UILabel alloc]init];
        self.badgeValueLabel.backgroundColor = [UIColor redColor];
        self.badgeValueLabel.textAlignment = NSTextAlignmentCenter;
        self.badgeValueLabel.font = [UIFont systemFontOfSize:11];
        self.badgeValueLabel.textColor = [UIColor whiteColor];
        self.badgeValueLabel.layer.masksToBounds = YES;
        self.badgeValueLabel.layer.cornerRadius = 6.5;
        [self addSubview:self.badgeValueLabel];
        
        self.titleLabel = [[UILabel alloc] init];
        [self.titleLabel setTextColor:[UIColor whiteColor]];
        [self.titleLabel setTextAlignment:NSTextAlignmentCenter];
        [self.titleLabel setFont:[UIFont systemFontOfSize:14.f]];
        [self addSubview:self.titleLabel];
        
        self.EN_titleLabel = [[UILabel alloc] init];
        [self.EN_titleLabel setTextColor:[UIColor grayColor]];
        [self.EN_titleLabel setBackgroundColor:[UIColor blackColor]];
        [self.EN_titleLabel setTextAlignment:NSTextAlignmentCenter];
        [self.EN_titleLabel setFont:[UIFont systemFontOfSize:13.f]];
        [self.EN_titleLabel setHidden:YES];
        [self addSubview:self.EN_titleLabel];
        
        self.imageView = [[UIImageView alloc] init];
        [self.imageView setBackgroundColor:[UIColor clearColor]];
        [self addSubview:self.imageView];
        
        // 获得按钮的大小
        CGFloat xm_btnWidth = self.bounds.size.width;
        CGFloat xm_btnHeight = self.bounds.size.height;
        // 获得按钮中UILabel文本的大小
        CGFloat xm_labelWidth =  self.bounds.size.width;//self.titleLabel.bounds.size.width;
        CGFloat xm_labelHeight = 30;//self.titleLabel.bounds.size.height;
        // 获得按钮中image图标的大小
        CGFloat xm_imageWidth = 15;//self.imageView.bounds.size.width;
        CGFloat xm_imageHeight = 15;//self.imageView.bounds.size.height;
        
        /** 设置button上的图片或文字 */
        
        // 计算文本的的宽度
        NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
        dictM[NSFontAttributeName] = self.titleLabel.font;
        CGSize size = [self.titleLabel.text sizeWithFont:self.titleLabel.font constrainedToSize:CGSizeMake(MAXFLOAT, self.titleLabel.frame.size.height)];
        
        
        CGFloat imageX = (xm_btnWidth - xm_imageWidth) * 0.5;
        self.imageView.frame = CGRectMake(imageX, 10, xm_imageWidth, xm_imageHeight);
        self.titleLabel.frame = CGRectMake((xm_btnWidth - xm_labelWidth) * 0.5, xm_imageHeight + 5, xm_labelWidth, xm_labelHeight);
        
        self.EN_titleLabel.frame = CGRectMake(CGRectGetMaxX(self.imageView.frame) + 10 , CGRectGetMaxY(self.titleLabel.frame) , size.width,10);
        
    }
    return self;
}


WPark.zip (98.93 KB, 下载次数: 54, 售价: 5 金钱)
1568 0 0
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542


代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表