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

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:42:51
字體:
來源:轉載
供稿:網友

效果圖如下所示:

ios,popover,氣泡

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氣泡效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網的支持!


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美va欧美va香蕉在| 欧美中文字幕视频在线观看| 欧美中文字幕视频| 国产精品成人一区二区三区吃奶| 国产综合在线看| 国产精品亚洲аv天堂网| 亚洲永久免费观看| 97av视频在线| 亚洲区bt下载| 91免费看片网站| 国产丝袜高跟一区| 91欧美视频网站| 日韩中文字幕视频在线观看| 欧美激情网友自拍| 久久久免费精品| 久久99亚洲热视| 亚洲欧美日韩一区二区三区在线| 欧美电影电视剧在线观看| 青青草一区二区| 亚洲影院色在线观看免费| 欧美极品美女视频网站在线观看免费| 538国产精品视频一区二区| 91久久中文字幕| 国产精品福利在线观看| 欧美野外猛男的大粗鳮| 91极品视频在线| 亚洲欧美在线一区二区| 姬川优奈aav一区二区| 国产精品自拍小视频| 午夜剧场成人观在线视频免费观看| 中文字幕一区日韩电影| 欧美老女人在线视频| 亚洲国产精品福利| 亚洲天堂av网| 国产精品久久视频| 精品露脸国产偷人在视频| 国产一区红桃视频| 精品国内产的精品视频在线观看| 久久乐国产精品| 国产日韩欧美日韩大片| 中文字幕精品一区二区精品| 亚洲美女自拍视频| 91av视频在线| 亚洲黄色成人网| 久久久久久久激情视频| 欧美一区二粉嫩精品国产一线天| 国产福利成人在线| 国产视频精品va久久久久久| 青青久久aⅴ北条麻妃| 97欧美精品一区二区三区| 成人女保姆的销魂服务| 亚洲欧洲日产国产网站| 中文字幕日韩综合av| 精品夜色国产国偷在线| 久久精品国产91精品亚洲| 国产一区二中文字幕在线看| 日韩中文字幕在线播放| 午夜精品美女自拍福到在线| 国外日韩电影在线观看| 精品一区二区电影| 97精品在线观看| 91亚洲国产精品| 亚洲精品一区二区久| 中文字幕日韩欧美精品在线观看| 一区二区三区高清国产| 日本韩国欧美精品大片卡二| 色综合久久精品亚洲国产| 亚洲美女喷白浆| 国产精品久久综合av爱欲tv| 久久精品国产成人| 欧美激情精品在线| 成人免费视频xnxx.com| 亚洲国产欧美一区二区三区同亚洲| 91成人天堂久久成人| 国产这里只有精品| 国产精品成人免费电影| 亚洲毛片在线免费观看| 欧美裸体男粗大视频在线观看| 91免费国产视频| 亚洲国产日韩欧美在线图片| 亚洲精品视频二区| 性色av一区二区三区红粉影视| 久久不射热爱视频精品| 蜜臀久久99精品久久久无需会员| 国产精品久久久久久久久影视| 亚洲美女在线视频| 国产精品日韩专区| 日韩不卡在线观看| 久久久久久久久久久免费| 国产一区二区三区在线播放免费观看| 久久成人这里只有精品| 国产欧美在线视频| 国产精品视频永久免费播放| 日韩精品欧美国产精品忘忧草| 亚洲日本欧美中文幕| 久久五月情影视| 色99之美女主播在线视频| 国产999在线| 国产一区二区三区在线观看视频| 欧美激情亚洲综合一区| 4438全国成人免费| 欧美视频13p| 国产偷国产偷亚洲清高网站| 在线视频国产日韩| 久久综合国产精品台湾中文娱乐网| 亚洲乱码一区av黑人高潮| 亚洲精品美女久久久久| 日韩av综合网站| 中文欧美在线视频| 亚洲精品之草原avav久久| 欧美色视频日本版| 精品成人国产在线观看男人呻吟| 国产视频精品va久久久久久| 欧美国产精品人人做人人爱| 精品国产一区二区三区久久狼5月| 欧美精品电影在线| 狠狠躁天天躁日日躁欧美| 国产精品一区二区三区久久久| 最新日韩中文字幕| 色妞在线综合亚洲欧美| 国产美女久久精品香蕉69| 98午夜经典影视| 亚洲精品视频在线观看视频| 精品一区二区三区四区在线| 欧美午夜精品在线| 久久精品国产99国产精品澳门| 欧美大尺度激情区在线播放| 欧美日本精品在线| 午夜精品一区二区三区av| 亚洲第一区第二区| 国产精品专区第二| 欧美日韩精品在线| 国产噜噜噜噜噜久久久久久久久| 国模极品一区二区三区| 亚洲欧美视频在线| 亚洲美女精品久久| 在线观看精品自拍私拍| 精品电影在线观看| 美女撒尿一区二区三区| 91亚洲精品久久久久久久久久久久| 亚洲国产精品美女| 精品久久久国产精品999| 日韩中文娱乐网| 亚洲tv在线观看| 久久国产精品久久久久久久久久| 欧美另类69精品久久久久9999| 国内精品视频久久| 国产欧美日韩免费看aⅴ视频| 色香阁99久久精品久久久| 亚洲毛片在线观看| 亚洲日本欧美日韩高观看| 少妇高潮久久久久久潘金莲| 大伊人狠狠躁夜夜躁av一区| 亚洲国产成人精品电影| 国产精品自拍偷拍| 91精品啪aⅴ在线观看国产| 欧美激情第1页| 亚洲精品www| 亚洲国产欧美一区二区三区同亚洲| 亚洲尤物视频网| 91影院在线免费观看视频| 欧美日韩成人在线视频| 欧美日韩国产精品一区二区三区四区| 最新国产精品拍自在线播放|