iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)

最近工作中遇到自己定义的tabbar在iOS8 中重叠的情况.就是原本已经移除的UITabBarButton再次出现

折腾了半天,都不知道原因所在。

最后翻阅文档。 说在iOS8 是允许动态添加tabbaritem的。所以,我猜想会不会是因为这个原因。那为什么iOS7又是没有问题的呢?

回到正题。既然是动态添加。那么按照apple的一贯作风。一定会调用viewWillAutolayout这个方法。

解决方法:

-(void)viewWillLayoutSubviews{

[super viewWillLayoutSubviews];

for (UIView *child in self.tabBar.subviews) {

if ([child isKindOfClass:NSClassFromString(@"UITabBarButton")]) {

[child removeFromSuperview];

}

}

}

- (void)viewWillAppear:(BOOL)animated

{

// 删除系统自动生成的UITabBarButton

for (UIView *child in self.tabBar.subviews) {

if ([child isKindOfClass:[UIControl class]]) {

[child removeFromSuperview];

}

}

[super viewWillAppear:animated];

}

时间: 2024-10-14 14:06:30

iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)的相关文章

iOS开发项目篇—27自定义UITabBar

iOS开发项目篇—27自定义UITabBar 一.自定义 思路: (1)新建一个继承自UITabBar的类,自定义一个UITabBar (2)用自定义的UITabBar换掉系统的UItabBar(使用了KVC) (3)监听控制器的切换,只要控制器一切换,就调用代理方法强制重新布局子控件(内部会调用layoutSubviews). YYTabBar.m文件代码: 1 // 2 // YYTabBar.m 3 // 4 5 #import "YYTabBar.h" 6 7 @interfa

自定义UITabBar的两种方式

开发中,经常会遇到各种各样的奇葩设计要求,因为apple提供的UITabBar样式单一,只是简单的"图片+文字"样式,高度49又不可以改变.自定义UITabBar成为了唯一的出路.下面我就列举开发中我经常用到的两种自定义UITabBar的方式,并且通过比较他们的不同之处,能够知道何时用何种方式自定义UITabBar. 方式一: 这是真正意义上的自定义UITabBar,因为这种方式需要继承自UITabBar,但是缺点也很明显,高度永远是49,实际开发的项目中的tabBar如果和原生的UI

仿新浪微博IOS客户端(v5.2.8)——自定义UITabBar替换系统默认的(添加“+”号按钮)

转载请标明出处:http://blog.csdn.net/android_ls/article/details/45896395 声明:仿新浪微博项目,所用所有图片资源都来源于官方新浪微博IOS客户端,编写本应用的目的在于学习交流,如涉及侵权请告知,我会及时换掉用到的相关图片. 自定义UITabBar替换系统默认的,目的是为了在UITabBar中间位置添加一个"+号按钮",下面我们来聊聊具体的实现. 1.自定义WBTabBar,让其继承自UITabBar,代码如下: // // WBT

iOS之自定义UITabBar替换系统默认的(添加“+”号按钮)

自定义UITabBar替换系统默认的,目的是为了在UITabBar中间位置添加一个“+号按钮”,下面我们来聊聊具体的实现. 1.自定义WBTabBar,让其继承自UITabBar,代码如下: // // WBTabBar.h // SinaWeibo // // Created by android_ls on 15/5/21. // Copyright (c) 2015年 android_ls. All rights reserved. // #import <UIKit/UIKit.h>

IOS总结_无需自定义UITabbar也可改变UITabbarController的背景和点击和的颜色

在application: application didFinishLaunchingWithOptions: launchOptions 加入下面代码就可以实现对tabbar的颜色的修改 //设定Tabbar的点击后的颜色 [[UITabBar appearance] setTintColor:[UIColor redColor]]; //设定Tabbar的颜色 [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]]; 这是效

自定义UITabBar

以微博为例,自定义TabBar,给初学者参考: CJTabBar.h // // CJTabBar.h // 自定义Tabar // // Created by CoderJee on 15/1/25. // Copyright (c) 2015年 CoderJee. All rights reserved. // #import <UIKit/UIKit.h> @protocol CJTabBarDelegate <NSObject> @optional - (void)tabB

iOS8自定义输入法教程:如何创建第三方输入法

iOS8带来了很多很酷的功能,其中一个就是增加第三方输入法作为应用程序扩展.我们应当重视这个时刻,因为应用程序扩展开辟了一个全新的应用程序种类以及付费操作.凭借着在应用商店中数百万的应用程序,开发者和用户将迎来全新的一天. 在本帖中,我将向您展示如何为您的应用程序创建一个可进行全系统输入法操作的第三方输入法. 本教程将用Swift来完成.这是我的第一个真正用Swift语言完成的项目,我对其十分喜爱.现在,让我们直接研究如何创建一个第三方输入法. 首先,我先向大家展示一下我们要搭建的输入法的最终效

ios基础篇(九)——自定义UITabBar

上一篇讲到了UITabBarViewController,接着说说UITabBarViewController中怎么自定义TabBar. 今天仿写了微博,发现底部tabbar中间的button和其他有所不同,button较大且着色:而且我们平时工作中也有很多类似这样的问题,有些app有一个看起来像标准 tabBarController,但是呢,tabBar的中间是凸起的或者着色的.我们怎样做可以构建这种现实效果呢? 如图: 这些标签栏除了中间项以外看起来都相当的标准,所以我们会从一个标准的包含一

实际iOS编程中遇到的自定义导航栏按钮,导致手势返回失效的解决方法

1\在实际编程过程中往往需要自定义导航栏上面的按钮,也就用: - (instancetype)initWithCustomView:(UIView *)customView; 但用了这个方法后可能会导致iOS7,8的手势返回失效,解决方法就是在自定义的导航栏的viewDidLoad方法中添加如下代码 注意:只有用系统的导航栏,或者继承于系统的导航栏才可以用Push方法,并且自带返回手势. - (void)viewDidLoad { [super viewDidLoad]; __weak type