关于UIview 事件响应的处理
程序员文章站
2024-03-22 23:39:28
...
全局音乐悬浮窗的展开和收齐
最近做项目遇到个需求,要求像喜马拉雅App的全局音乐悬浮窗那样。
悬浮窗有两种状态
需要随便点击或者滑动哪里都要把展开的浮窗收起
我的思路是需要一个全屏幕的背景,之前做的是点击一下才会收起,可以接收到触摸事件但不响应,传递给父view响应,还要把浮窗关闭。
在浮窗展开的时候在window上添加自定义的 TouchView(要把浮窗bring到TouchView 前面)
.h
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol TouchViewDelegate <NSObject>
-(void)didTouch;
@end
@interface TouchView : UIView
@property(weak,nonatomic) id<TouchViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END
.m
#import "TouchView.h"
@implementation TouchView
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
if ([self.delegate respondsToSelector:@selector(didTouch)]) {
[self.delegate didTouch];
}
return nil;
}
@end
在didTouch 实现 浮窗的关闭就ok 了
效果如下
下一篇: css边框内凹圆角,解决优惠券的边框问题