博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
添加新手引导页需要注意的几个小点
阅读量:5037 次
发布时间:2019-06-12

本文共 2092 字,大约阅读时间需要 6 分钟。

   在项目中添加一个新的模块时【tabbar】,会设置相应的引导页做为介绍,引导页中会设置相应的图标展示,蒙版的添加,角标的设置。首先呢是关于添加新手蒙版,无非是添加一个View,设置为对应的引导层,如果不做那种投射效果的话,可以直接设置蒙版的透明度【一般设置为0.7左右】,其他的展示就直接添加即可。不过这时候如果在界面上添加了开机引导页的话,就会造成添加的新手引导蒙版会直接覆盖到开机页上面。示例如下图所示:

 

 

解决方法分两种情况: 1、首页展示的只有一种情况的时候并且软件框架是‘底部标签式’的交互模式-----【只展示登录界面或者只展示一个home页】 这种情况下可以使用通知,首页在要展示的界面注册通知:

// 使用引导图    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(firstload) name:@"firstloadHome" object:nil];

 ,然后在点击首页引导隐藏的按钮处发送通知

[[NSNotificationCenter defaultCenter]postNotificationName:@"firstloadHome" object:nil];

在接收到通知的方法里直接进行加载要展示的引导页就可以了。

2、首页展示的界面可能有多种情况(未登录展示登录界面、登录了展示home界面)并且未采用UITabbar的情况,可以将视图直接添加到view上【默认添加到window上】 这样就能避免上述情况;

     除此之外呢,新的版块的加入,势必会标记一下这个版块,一般采用添加小红点的方式,一般是设置一个UITabbar的分类,在分类上添加一个View,此时要注意的有两点,(1)界面的适配要针对iPad和iPhone故要做相应的两套布局:

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad){                //ipad        //确定小红点的位置        float percentX = (index+0.35) / tabbarItemNums;        CGFloat x = ceilf(percentX * tabFrame.size.width);        CGFloat y = ceilf(0.1 * tabFrame.size.height);        badgeView.frame = CGRectMake(x, y, 10, 10);        [self addSubview:badgeView];            }else {                //iphone        //确定小红点的位置        float percentX = (index +0.6) / tabbarItemNums;        CGFloat x = ceilf(percentX * tabFrame.size.width);        CGFloat y = ceilf(0.1 * tabFrame.size.height);        badgeView.frame = CGRectMake(x, y, 10, 10);        [self addSubview:badgeView];            }

(2)加载的时机,一般写完分类后会在界面的出现的时候调用,在界面点击的时候隐藏,但是如果工程中存在根视图(rootTabbar)的情况下,即使调用了相关的展示方法,小红点也是不会出现,这一块就涉及到视图的生命周期问题,如果在子视图的界面中调用的话,会重新创建出一个uitabbar,此时的tabbar和展示的tabbar不一致并且没有设置相应的frame所以会看到即使在首页中调用了展示小红点的方法也不会出现。所以这时候也可以采用通知的解决方式:如下所示:

在根视图中注册相应的通知

// 添加红色小按钮    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showBadgeWithIndex) name:@"addfirstNotification" object:nil];

再在加载新手引导页的地方发送添加红色按钮的通知

// 发送通知,添加红色的小按钮        [[NSNotificationCenter defaultCenter]postNotificationName:@"addfirstNotification" object:nil];

红色按钮消失的方法同理。

 

转载于:https://www.cnblogs.com/windsSunShine/p/6857020.html

你可能感兴趣的文章
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
Python学习-文件操作
查看>>
正则表达式()、[]、{}的区别
查看>>
第十二周作业
查看>>
Socket开发框架之框架设计及分析
查看>>
oracle.encode('gbk',errors='ignore').decode('gbk')
查看>>
kexec on openwrt - linux boots linux, kernel boots kernel on openwrt
查看>>
【练习赛2补题】zoj 2734 Exchange Cards 【DFS】
查看>>
【练习赛补题】问题 E: 花生采摘 【模拟】
查看>>
大叔程序员的第二天 @Fragment学习
查看>>
k8s应用首页临时改成升级维护页面
查看>>
POJ 3278 -- Catch That Cow
查看>>
VC++6.0 安装教程
查看>>
一个组件框架的构建
查看>>
表单结构
查看>>
HDU 1541 Stars(树状数组)
查看>>
React组件开发经典案例--todolist
查看>>
Vue的使用
查看>>