亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

簡單好用可任意定制的iOS Popover氣泡效果

2020-07-26 02:34:27
字體:
來源:轉載
供稿:網友

效果圖如下所示:

 

swift: https://github.com/corin8823/Popover OC: https://github.com/Assuner-Lee/PopoverObjC

使用示例

pod 'PopoverObjC'#import "ASViewController.h"#import <PopoverObjC/ASPopover.h>@interface ASViewController ()@property (weak, nonatomic) IBOutlet UIButton *btn;@property (nonatomic, strong) ASPopover *btnPopover;@property (nonatomic, strong) ASPopover *itemPopover;@end@implementation ASViewController- (void)viewDidLoad { [super viewDidLoad]; [self.btn addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"item" style:UIBarButtonItemStylePlain target:self action:@selector(clickItem:)];}- (void)didReceiveMemoryWarning {}

初始化Popover

- (ASPopover *)btnPopover { if (!_btnPopover) { ASPopoverOption *option = [[ASPopoverOption alloc] init]; option.popoverType = ASPopoverTypeUp; option.autoAjustDirection = NO; option.arrowSize = CGSizeMake(9, 6); option.blackOverlayColor = [UIColor clearColor]; option.popoverColor = [UIColor lightGrayColor]; option.dismissOnBlackOverlayTap = YES; option.animationIn = 0.5; //... _btnPopover = [[ASPopover alloc] initWithOption:option]; } return _btnPopover;}- (ASPopover *)itemPopover { if (!_itemPopover) { ASPopoverOption *option = [[ASPopoverOption alloc] init]; option.autoAjustDirection = NO; option.arrowSize = CGSizeMake(10, 6); option.blackOverlayColor = [UIColor clearColor]; option.sideEdge = 7; option.dismissOnBlackOverlayTap = YES; option.popoverColor = [[UIColor blackColor] colorWithAlphaComponent:0.7]; option.autoAjustDirection = YES; option.animationIn = 0.4; option.springDamping = 0.5; option.initialSpringVelocity = 1; option.overlayBlur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; //... _itemPopover = [[ASPopover alloc] initWithOption:option]; } return _itemPopover;}

popover的屬性可在option里設置。

彈出氣泡

- (void)clickBtn:(id)sender { UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width - 50, 40)]; [self.btnPopover show:view fromView:self.btn]; // in delegate window}- (void)clickItem:(id)sender { UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 200)]; UIView *itemView = [self.navigationItem.rightBarButtonItem valueForKey:@"view"]; // you should use custom view in item; if (itemView) {// [self.itemPopover show:view fromView:itemView]; CGPoint originPoint = [self.itemPopover originArrowPointWithView:view fromView:itemView]; originPoint.y += 5; [self.itemPopover show:view atPoint:originPoint]; }}@end

可在某一個視圖或某一個point上彈出內容view

Popover interface#import <UIKit/UIKit.h>#import "ASPopoverOption.h"typedef void (^ASPopoverBlock)(void);@interface ASPopover : UIView@property (nonatomic, copy) ASPopoverBlock willShowHandler;@property (nonatomic, copy) ASPopoverBlock willDismissHandler;@property (nonatomic, copy) ASPopoverBlock didShowHandler;@property (nonatomic, copy) ASPopoverBlock didDismissHandler;@property (nonatomic, strong) ASPopoverOption *option;- (instancetype)initWithOption:(ASPopoverOption *)option;- (void)dismiss;- (void)show:(UIView *)contentView fromView:(UIView *)fromView;- (void)show:(UIView *)contentView fromView:(UIView *)fromView inView:(UIView *)inView;- (void)show:(UIView *)contentView atPoint:(CGPoint)point;- (void)show:(UIView *)contentView atPoint:(CGPoint)point inView:(UIView *)inView;- (CGPoint)originArrowPointWithView:(UIView *)contentView fromView:(UIView *)fromView;- (CGPoint)arrowPointWithView:(UIView *)contentView fromView:(UIView *)fromView inView:(UIView *)inView popoverType:(ASPopoverType)type;@end

contentView: 要顯示的內容; fromView: 氣泡從某一個視圖上show; inview: 氣泡繪制在某一個視圖上,一般為delegate window; atPoint: 氣泡從某一點上show; 可先獲取originPoint, 偏移;

PopoverOption Interfacetypedef NS_ENUM(NSInteger, ASPopoverType) { ASPopoverTypeUp = 0, ASPopoverTypeDown,};@interface ASPopoverOption : NSObject@property (nonatomic, assign) CGSize arrowSize;@property (nonatomic, assign) NSTimeInterval animationIn; // if 0, no animation@property (nonatomic, assign) NSTimeInterval animationOut;@property (nonatomic, assign) CGFloat cornerRadius;@property (nonatomic, assign) CGFloat sideEdge;@property (nonatomic, strong) UIColor *blackOverlayColor;@property (nonatomic, strong) UIBlurEffect *overlayBlur;@property (nonatomic, strong) UIColor *popoverColor;@property (nonatomic, assign) BOOL dismissOnBlackOverlayTap;@property (nonatomic, assign) BOOL showBlackOverlay;@property (nonatomic, assign) CGFloat springDamping;@property (nonatomic, assign) CGFloat initialSpringVelocity;@property (nonatomic, assign) ASPopoverType popoverType;@property (nonatomic, assign) BOOL highlightFromView;@property (nonatomic, assign) CGFloat highlightCornerRadius;@property (nonatomic, assign) BOOL autoAjustDirection; // down preferred, effect just in view not at point@end

總結

以上所述是小編給大家介紹的簡單好用可任意定制的iOS Popover氣泡效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久久久久| 日韩亚洲欧美中文高清在线| 亚洲欧美日韩一区在线| 日韩免费不卡av| 国产精品久久久久av免费| 欧美性感美女h网站在线观看免费| 亚洲小视频在线观看| 国产精品黄色av| 日韩欧美国产一区二区| 色小说视频一区| 国产91久久婷婷一区二区| 精品亚洲精品福利线在观看| 欧美猛少妇色xxxxx| 51色欧美片视频在线观看| 国产精品免费视频xxxx| 国产精品视频在线观看| 日韩av电影在线网| 久久国产精品首页| 最近免费中文字幕视频2019| 日韩欧美大尺度| 日本中文字幕不卡免费| 久久色在线播放| 精品亚洲一区二区三区四区五区| 久久在精品线影院精品国产| 亚洲精品福利视频| 日韩免费精品视频| 国产在线视频欧美| 日本精品久久久久影院| 欧美日韩国产色视频| 成人h片在线播放免费网站| 91国产精品电影| 精品日本高清在线播放| 2019中文字幕免费视频| 精品久久久久久久久久久| 久久精品国产免费观看| 精品久久中文字幕| 一个人www欧美| 欧美日韩性视频在线| 久久精品国产综合| 亚洲直播在线一区| 久久精品色欧美aⅴ一区二区| 久久中文久久字幕| 日韩欧美高清在线视频| 亚洲一区亚洲二区亚洲三区| 日韩美女福利视频| 久久99国产精品久久久久久久久| 久久综合88中文色鬼| 日韩av网站电影| 久久久久久成人精品| 夜夜躁日日躁狠狠久久88av| 日韩在线视频观看| 国产精品久久久久7777婷婷| 成人a在线观看| 欲色天天网综合久久| 国产亚洲a∨片在线观看| 欧美日韩国产精品一区二区三区四区| 韩日欧美一区二区| 亚洲成av人乱码色午夜| 精品国产电影一区| 国产综合视频在线观看| 国产精品久久久久久久电影| 91国产在线精品| 久久精品国产精品| 日韩人在线观看| 亚洲iv一区二区三区| 在线播放国产一区中文字幕剧情欧美| 久久黄色av网站| 在线视频欧美日韩精品| 日韩有码视频在线| 日韩大片免费观看视频播放| 国产丝袜一区二区三区免费视频| 国产97人人超碰caoprom| 高清一区二区三区四区五区| 国产精品久久国产精品99gif| 成人激情在线播放| 久久久久久这里只有精品| 久久久精品免费视频| 欧美激情视频一区二区| 久久九九热免费视频| 亚洲人精选亚洲人成在线| 一区二区三区黄色| 国产日韩欧美在线观看| 97视频在线观看成人| 久久手机精品视频| 日本久久久久久久久久久| 欧美一级免费视频| 欧美wwwwww| 日韩精品免费观看| 欧美重口另类videos人妖| 精品久久久久久久久久久久久| 在线电影欧美日韩一区二区私密| 亚洲黄在线观看| 91干在线观看| 日韩中文在线中文网三级| 欧美激情一区二区三区高清视频| 亚洲精品久久久一区二区三区| 日韩在线免费av| 欧美性猛交xxxx乱大交蜜桃| 欧美午夜丰满在线18影院| 2018日韩中文字幕| 日韩精品在线私人| 欧洲永久精品大片ww免费漫画| 久久久国产一区二区三区| 亚洲自拍av在线| 亚洲xxxx3d| 久久久最新网址| 日韩综合视频在线观看| 91免费看国产| 裸体女人亚洲精品一区| 91国自产精品中文字幕亚洲| 日韩免费在线播放| 亚洲级视频在线观看免费1级| 亚洲free性xxxx护士hd| 国产精品美女久久久久av超清| 亚洲精品久久在线| 成人精品一区二区三区电影免费| 国产精品久久av| 黑人极品videos精品欧美裸| 国产自产女人91一区在线观看| 日韩福利视频在线观看| 91在线色戒在线| 国产成人综合精品在线| 亚洲欧美日韩中文在线| 国产精品自拍视频| 亚洲欧美国产精品专区久久| 亚洲www视频| 久久成人综合视频| 欧美老女人bb| 欧美人与性动交a欧美精品| 国产精品自产拍在线观看中文| 欧美洲成人男女午夜视频| 国产亚洲精品久久久久久牛牛| 欧美性猛交xxxx免费看漫画| 国产精品高清免费在线观看| 日本精品视频在线观看| 久热精品视频在线| 日本成人在线视频网址| 日韩在线视频中文字幕| 欧美黄色免费网站| 国产精品色视频| 亚洲国产精品va在线看黑人动漫| 一级做a爰片久久毛片美女图片| 国产精品欧美激情在线播放| 成人国产精品久久久久久亚洲| 97碰碰碰免费色视频| 日韩欧亚中文在线| 色琪琪综合男人的天堂aⅴ视频| 亚洲女人被黑人巨大进入al| 亚洲国产精品免费| 久久久国产视频91| 国产亚洲精品综合一区91| 欧美成人一区在线| 日韩视频在线免费| 九九久久综合网站| 国产免费成人av| 亚洲91精品在线| 精品国产91久久久久久老师| 欧美香蕉大胸在线视频观看| 欧美性猛交xxxxx水多| 影音先锋日韩有码| 日韩成人久久久| 欧美巨乳美女视频| 在线不卡国产精品| 亚洲电影在线看|