文章出處

 

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;
}

 

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()