zoukankan      html  css  js  c++  java
  • 模拟一个全局悬浮的购物车

    https://www.zybuluo.com/keenleung/note/339988

    所有的界面中,都悬浮一个购物车

    • 思路: 
      在 AppDelegate 中创建多一个 Widow, 而且设置 Window 的级别是最高的
    • 注意:

      • 不要指定 Window 的根控制器,指定了根控制器的话,状态栏的显示样式就会与这个根控制器决定了,因为状态栏的显示样式, 是由最顶层 Window 的根控制器决定的
      • Window 的显示不需要添加到任何地方,只需要设置 hidden 属性的值为 NO 即可
    • 做法:

     
    // 程序启动的时候调用
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 进入广告界面
        // 1.创建窗口
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        // 2.创建窗口的根控制器 => 一开始想显示什么效果
        // 创建广告界面:展示启动界面
        self.window.rootViewController = [[TabBarController alloc] init];
        // 3.显示窗口 makeKey:UIApplication主窗口
        // 窗口会把根控制器的view添加到窗口
        [self.window makeKeyAndVisible];
        // 模拟显示一个全局悬浮的购物车
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            // UIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert
            // 级别越高的window越显示在上面
            // 级别相等的window,后面显示的window显示在上面
            self.topWindow = [[UIWindow alloc] init];
            //        self.topWindow.frame = application.statusBarFrame;
            self.topWindow.frame = CGRectMake(280, 500, 80, 80);
            self.topWindow.backgroundColor = [UIColor redColor];
            self.topWindow.windowLevel = UIWindowLevelAlert;
            self.topWindow.hidden = NO;
            [self.topWindow addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click)]];
        });
        return YES;
    }
  • 相关阅读:
    LINUX下 my.cnf php.ini的位置
    如何启动/停止/重启MySQL
    Windows下Git Bash中文乱码
    linux下忘记密码怎么办,如何重置密码
    如何在word里面插入目录
    git常见问题解决办法
    git配置global信息
    怎样把excel一列分成多列
    php中array_flip数组翻转
    笔记本电脑键盘字母和字母错乱怎样解决
  • 原文地址:https://www.cnblogs.com/KeenLeung/p/5373857.html
Copyright © 2011-2022 走看看