XWFloatingWindow
一行代碼集成微信浮窗功能
1. 效果
gif_demo1.gif
2. 使用
在需要浮窗展示的地方調(diào)用:
// self 為需要浮窗展示的控制器
[XWFloatingWindowView showWithViewController:self];
現(xiàn)在你的控制器就已經(jīng)集成微信浮窗功能了??
其他方法
1. 當(dāng)然你可能需要知道當(dāng)前控制器是否在浮窗內(nèi)展示硝皂,你可以 ??:
// self 為當(dāng)前控制器
BOOL isShowing = [XWFloatingWindowView isShowingWithViewController:self]
他會(huì)告訴你當(dāng)前控制器是否已集成在浮窗內(nèi)常挚。
2. 獲取你希望移除這個(gè)浮窗,除了拖動(dòng)到右下紅色區(qū)域內(nèi)自動(dòng)移除以外稽物,你也可以 ??:
// 移除浮窗奄毡,釋放控制器
[XWFloatingWindowView remove];
3.擴(kuò)展
1.界面跳轉(zhuǎn)效果使用
UINavigationController
轉(zhuǎn)場(chǎng)動(dòng)畫2.震動(dòng)效果使用
UIImpactFeedbackGenerator
此類僅支持iOS10及以上機(jī)型,微信能震動(dòng)多數(shù)情況下此庫也會(huì)震3.一些界面繪制使用了
CALayer
和 相關(guān)子類.4.使用了簡(jiǎn)單的
CABasicAnimation
核心動(dòng)畫5.分享一個(gè)筆者創(chuàng)建單例對(duì)象的代碼塊贝或,任何需要?jiǎng)?chuàng)建單例的類吼过,引入此段代碼,并將
XXClassManager
替換為你自定義的類就可以了咪奖。
#pragma mark - 單例對(duì)象
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;
}
?? 調(diào)用此庫之前需要確定你的控制器為 NavigationController
所管理盗忱,否則將無法集成
詳情實(shí)現(xiàn)可下載源碼查看: XWFloatingWindow
- ?? 筆者博客:極客學(xué)偉的技術(shù)分享社區(qū)