自定义 TabBar

import “XMGTabBar.h”

@interface XMGTabBar()
/* 发布按钮 /
@property (nonatomic, weak) UIButton *publishButton;
@end

@implementation XMGTabBar

  • (instancetype)initWithFrame:(CGRect)frame
    {
    if (self = [super initWithFrame:frame]) {
    // 设置tabbar的背景图片
    [self setBackgroundImage:[UIImage imageNamed:@”tabbar-light”]];

    // 添加发布按钮
    UIButton *publishButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [publishButton setBackgroundImage:[UIImage imageNamed:@"tabBar_publish_icon"] forState:UIControlStateNormal];
    [publishButton setBackgroundImage:[UIImage imageNamed:@"tabBar_publish_click_icon"] forState:UIControlStateHighlighted];
    publishButton.size = publishButton.currentBackgroundImage.size;
    [self addSubview:publishButton];
    self.publishButton = publishButton;
    

    }
    return self;
    }

  • (void)layoutSubviews
    {
    [super layoutSubviews];

    CGFloat width = self.width;
    CGFloat height = self.height;

    // 设置发布按钮的frame
    self.publishButton.center = CGPointMake(width * 0.5, height * 0.5);

    // 设置其他UITabBarButton的frame
    CGFloat buttonY = 0;
    CGFloat buttonW = width / 5;
    CGFloat buttonH = height;
    NSInteger index = 0;
    for (UIView *button in self.subviews) {
    if (![button isKindOfClass:[UIControl class]] || button == self.publishButton) continue;

    // 计算按钮的x值
    CGFloat buttonX = buttonW * ((index > 1)?(index + 1):index);
    button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);
    
    // 增加索引
    index++;
    

    }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值