how to get rid of the UITabBarItem padding

本文介绍了一种在iOS应用中自定义UITabBar选中状态背景的方法。通过创建一个可拉伸的UIImageView并将其插入到tabBar中,可以实现平滑过渡效果。这种方法避免了系统自带属性导致的边框问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手机APP,选中某一个Item的时候,其背景要完整的替换掉,采用系统自带的

@property(nonatomic,retain) UIColor *selectedImageTintColor

会出现边框的情况,最后找不到其它解决办法,使用了一个变通的方法:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"mainTabBarSelectedBackground"] stretchableImageWithLeftCapWidth:4 topCapHeight:4]];
imageView.tag = kSelectedBackgroundTag;
imageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame) / 4, 50);
[self.tabBar insertSubview:imageView atIndex:0];

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    UIImageView *imageView = (UIImageView *)[self.tabBar viewWithTag:kSelectedBackgroundTag];
    [UIView animateWithDuration:0.2 animations:^{
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        CGPoint center = imageView.center;
        center.x = CGRectGetWidth(imageView.frame) / 2 + CGRectGetWidth(imageView.frame) * self.selectedIndex;
        imageView.center = center;
    }];
}

这样就可以达到了其背景的替换。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值