zoukankan      html  css  js  c++  java
  • 添加新手引导页需要注意的几个小点

       在项目中添加一个新的模块时【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];

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

  • 相关阅读:
    一个奇怪的SystemClock_Config问题解决方法
    Keil5下载STM32库
    Entry point (0x08000000) points to a Thumb instruction but is not a valid Thumb code pointer.
    Error: failed to execute 'C:KeilARMARMCC'的解决办法
    C#委托的介绍(delegate、Action、Func、predicate)
    CopyFromScreen在屏幕缩放情况下需要做处理
    C# CEF 封装UserControl
    一个单js文件也可以运行vue
    vue自学入门-3(vue第一个例子)
    vue自学入门-1(Windows下搭建vue环境)
  • 原文地址:https://www.cnblogs.com/windsSunShine/p/6857020.html
Copyright © 2011-2022 走看看