iOS 一行代码集成微信浮窗功能

Posted 极客学伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 一行代码集成微信浮窗功能相关的知识,希望对你有一定的参考价值。

XWFloatingWindow

一行代码集成微信浮窗功能

1. 效果

2. 使用

在需要浮窗展示的地方调用:

// self 为需要浮窗展示的控制器
[XWFloatingWindowView showWithViewController:self];

现在你的控制器就已经集成微信浮窗功能了��

其他方法

1. 当然你可能需要知道当前控制器是否在浮窗内展示,你可以 ��:

// self 为当前控制器
BOOL isShowing = [XWFloatingWindowView isShowingWithViewController:self]

他会告诉你当前控制器是否已集成在浮窗内。

2. 获取你希望移除这个浮窗,除了拖动到右下红色区域内自动移除以外,你也可以 ��:

// 移除浮窗,释放控制器
[XWFloatingWindowView remove];

3.扩展

1.界面跳转效果使用 UINavigationController 转场动画
2.震动效果使用 UIImpactFeedbackGenerator 此类仅支持ios10及以上机型,微信能震动多数情况下此库也会震
3.一些界面绘制使用了 CALayer 和 相关子类.
4.使用了简单的 CABasicAnimation 核心动画
5.分享一个笔者创建单例对象的代码块,任何需要创建单例的类,引入此段代码,并将 XXClassManager 替换为你自定义的类就可以了。
#pragma mark - 单例对象
static XXClassManager *_defaultManager;
+ (instancetype)shareInstance 
    if (!_defaultManager) 
        _defaultManager = [[self alloc] init];
    
    return _defaultManager;

+ (instancetype)allocWithZone:(struct _NSZone *)zone 
    if (!_defaultManager) 
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^
            _defaultManager = [super allocWithZone:zone];
        );
    
    return _defaultManager;

- (id)copyWithZone:(NSZone *)zone
    return _defaultManager;

- (id)mutableCopyWithZone:(NSZone *)zone
    return _defaultManager;

⚠️ 调用此库之前需要确定你的控制器为 NavigationController 所管理,否则将无法集成

详情实现可下载源码查看: XWFloatingWindow

以上是关于iOS 一行代码集成微信浮窗功能的主要内容,如果未能解决你的问题,请参考以下文章

仿新版微信浮窗效果

【WPF】使用Popup控件做浮窗提示框

求一个能够显示时间的浮窗apk 要求显示到秒! 要求必须是浮窗! 求分享!

华为mate9的悬浮窗怎么操作

微信小程序怎么设置浮窗

如何设置华为手机小程序浮窗样式