国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉新县| 拜城县| 凯里市| 鲁山县| 会理县| 枝江市| 栖霞市| 北票市| 治多县| 临海市| 延津县| 南木林县| 平罗县| 吴堡县| 伊吾县| 辽中县| 安新县| 仲巴县| 清水县| 建湖县| 门头沟区| 吴堡县| 肇州县| 平陆县| 海原县| 黔南| 兰西县| 巴中市| 定陶县| 旬邑县| 宁强县| 德令哈市| 额敏县| 托克逊县| 清水县| 黄冈市| 通渭县| 彭泽县| 桐柏县| 晴隆县| 呼图壁县|