在App項(xiàng)目開(kāi)發(fā)過(guò)程中判没,總會(huì)對(duì)彈窗有各式各樣的需求,有頂部的彈窗隅茎,頂部的彈窗澄峰,中間的彈窗等等各式各樣,五花八門辟犀。彈窗的開(kāi)發(fā)俏竞,一般包括有彈出動(dòng)畫,退出動(dòng)畫,半透明蒙板魂毁,彈窗本身的UI和邏輯等玻佩,如果每個(gè)彈窗都要走一遍這個(gè)流程,無(wú)意是一件低效且無(wú)聊的事情席楚。那么有沒(méi)有一種解決方案夺蛇,可以讓我們只需要編碼彈窗本身的UI和邏輯呢?這就是筆者開(kāi)源YsyPopHelper這個(gè)簡(jiǎn)單易用的iOS彈窗開(kāi)發(fā)助手的目的酣胀。
demo地址:https://github.com/ysyplay/YsyPopHelperDemo
效果演示
功能和用途
1.可自定義彈窗彈出刁赦,消失的動(dòng)畫和方向。
2.可自定義彈窗的位置闻镶。
3.自動(dòng)規(guī)避鍵盤,防止被鍵盤遮擋甚脉。
4.支持指定彈框的父視圖。
5.你只需要專注于彈窗本身的UI和業(yè)務(wù)邏輯即可铆农。
#import <UIKit/UIKit.h>
#import "YsyPopMacro.h"
NS_ASSUME_NONNULL_BEGIN
@interface YsyPopHelper : UIView
/**
* 初始化方法
* @param customView 自定義彈窗
* @param popStyle 顯示樣式
* @param dismissStyle 消失樣式
* @param position 彈窗位置
*/
- (instancetype)initWithCustomView:(UIView *_Nonnull)customView
popStyle:(YsyPopStyle)popStyle
dismissStyle:(YsyDismissStyle)dismissStyle
position:(YsyPosition)position;
/// 顯示彈窗
- (void)show;
///消失彈窗
- (void)dismiss;
///彈出動(dòng)畫時(shí)間
@property (nonatomic, assign) NSTimeInterval popDuration;
///消失動(dòng)畫時(shí)間
@property (nonatomic, assign) NSTimeInterval dismissDuration;
///x軸偏移
@property (nonatomic, assign) CGFloat offsetX;
///y軸偏移
@property (nonatomic, assign) CGFloat offsetY;
///設(shè)置父視圖牺氨,默認(rèn)為window
@property (nonatomic, weak ) UIView *superView;
///是否規(guī)避鍵盤 默認(rèn)YES
@property (nonatomic, assign) BOOL isAvoidKeyboard;
///彈框和鍵盤的距離 默認(rèn)10
@property (nonatomic, assign) CGFloat avoidKeyboardSpace;
///半透明背景不可點(diǎn)擊,默認(rèn)點(diǎn)擊背景彈窗消失
@property (nonatomic, assign) BOOL disableTapBg;
@end
NS_ASSUME_NONNULL_END
使用方法
//初始化彈窗
TestView *popView = [TestView new];
popView.bounds = CGRectMake(0, 0, 260,291 );
//初始化彈窗助手
_helper = [[YsyPopHelper alloc] initWithCustomView:popView popStyle:YsyPopStyleFade dismissStyle:YsyDismissStyleScale position:YsyPositonCenter];
//彈窗助手調(diào)用展示方法
[_helper show];
可以看到3行代碼,即可使用彈窗墩剖,方便快捷猴凹,冗余度低。更多自定義需求岭皂,可參考Demo郊霎。要是你覺(jué)得好用,請(qǐng)點(diǎn)亮小星星??爷绘。