利用UIWindow创建悬浮按钮

原创 2017年01月03日 16:16:14


创建全局属性

@property(strong,nonatomic)UIWindow *giftWindow;
@property(strong,nonatomic)UIButton *giftBtn;
@property (strong,nonatomic) UIImageView *giftImgView;

创建按钮,window,imageView

- (void)giftButton {

    _giftWindow = [[UIWindow alloc]initWithFrame:CGRectMake(WIDTH-85, 30, 85, 85)];
    _giftWindow.windowLevel = UIWindowLevelAlert + 1;
    [_giftWindow makeKeyAndVisible];//关键语句,显示window

    _giftImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 85, 85)];

    // 创建序列帧动画
    NSMutableArray *array = [NSMutableArray array];

    for (int i = 0; i < 7; i++) {
        NSString *imageName = [NSString stringWithFormat:@"lihe-%d", i + 1];
        UIImage *image = [UIImage imageNamed:imageName];

        // 把图片添加到数组中
        [array addObject:image];
    }

    self.giftImgView.animationImages = array;
    self.giftImgView.animationDuration = 1.5;
    self.giftImgView.animationRepeatCount = 0;    // 0 表示重复
    [self.giftImgView startAnimating];
    [_giftWindow addSubview:_giftImgView];

    _giftBtn = [[UIButton alloc] init];
    _giftBtn.backgroundColor = [UIColor clearColor];
    [_giftBtn addTarget:self action:@selector(giftBtnClick) forControlEvents:UIControlEventTouchUpInside];
    _giftBtn.frame = CGRectMake(0, 0, 85, 85);
    [_giftWindow addSubview:_giftBtn];

}

实现点击

- (void)giftBtnClick{
    NSLog(@"111");

    //让window消失
    [_giftWindow resignKeyWindow];
    _giftWindow = nil;   
}

PS:因为是新创建了一个window,所以跳到其他见面时也会有,如果不想让其他页面显示需要在viewDidDisappear里写

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [_giftWindow resignKeyWindow];
    _giftWindow = nil;
}

如果要回到本页面时再度显示,就在viewWillAppear里调用[self giftButton];即可

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self giftButton];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

【iOS开发】UIWindow创建悬浮按钮

之前项目中有一个需求,在屏幕上面始终悬浮一个快速聊天按钮。 通过点击按钮可以跳转到相应的聊天界面。思路: 1.先创建一个按钮UIButton对象 2.再创建一个UIWindow对象,将UIBut...
  • Hanrovey
  • Hanrovey
  • 2016年08月10日 13:35
  • 1772

iOS开发-UIWindow的用法-创建悬浮按钮

UIWindow如何使用?开发中有何用? 我们在开发中可能经常会遇到需要在TableView上使用悬浮按钮的情况,这时 如果直接在TableVIewController上贴Button的话会导致这...
  • yangbingbinga
  • yangbingbinga
  • 2015年05月23日 19:20
  • 7324

手动创建UIWindow及UIWindowLevel的说明

手动创建UIWindow及UIWindowLevel的说明和实例
  • Zsk_Zane
  • Zsk_Zane
  • 2015年07月29日 18:14
  • 4218

利用UIWindow自定义类似UIAlertView的弹出框

项目中经常用到类似iOS原生的UIAlertView的弹出框,普通的用视图覆盖的方式是不能覆盖掉NavigationBar的,所以需要用到UIWindow来实现效果。 1、首先需要创建一个UIWin...
  • draven_kill
  • draven_kill
  • 2016年03月04日 17:35
  • 786

iOS开发(OC)——UIWindow

有没有发现,你的支付宝设置了手势密码或者开启了指纹解锁之后,当你把支付宝退到了后台(并没有强制关闭)一段时间之后,再从后台回来使用,就会弹出一个手势解锁或者指纹解锁的界面,无论你退到后台前的那个界面是...
  • liumude123
  • liumude123
  • 2017年04月28日 15:09
  • 137

添加多个UIWindow时,使用keyWindow要注意一点

最近的项目里有个关于创建多个uiwindow时使用keywindow出现的bug。 有个任务是在打开信息展示时,要求不被任何东西遮挡。这里设计方案是添加一个新的HXUIWindow继承与UIWind...
  • HX_lei
  • HX_lei
  • 2017年04月06日 09:16
  • 3787

[iOS开发]分享UIWindow里面的view如何在横屏时候切换位置

在UIWindow里面先放一个UIViewController, 用Controller的方法: - (BOOL)shouldAutorotateToInterfaceOrientation:(UI...
  • u010781303
  • u010781303
  • 2017年05月10日 11:02
  • 252

swift中UIWindow的使用

https://github.com/potato512/SYSwiftLearning UIWindow继承自UIView, 用来管理和协调各种视图。提供一个区域来显示视图, 将事件e...
  • potato512
  • potato512
  • 2016年10月28日 15:04
  • 1727

iOS 用UIWindow实现一个悬浮按钮或者全屏覆盖效果

@property (nonatomic, strong)UIWindow *window; // 添加window 如果视图控制器没有导航控制器 或者标签控制器会崩溃 这时候要添加window的r...
  • saw471
  • saw471
  • 2016年05月31日 18:48
  • 3776

创建UIWindow

  • baohanqing
  • baohanqing
  • 2016年03月23日 07:41
  • 90
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用UIWindow创建悬浮按钮
举报原因:
原因补充:

(最多只允许输入30个字)