【棄】快速實現(xiàn)任意定制氣泡彈窗--LPDPopoverObject

請移步簡單好用可任意定制的iOS Popover氣泡

示例效果

示例效果.gif

在這里,我們簡單實現(xiàn)了一個全黑的氣泡彈框,每個選項包含了圖片、標題、內(nèi)容和下劃線,并且可以滾動視圖,選定某一項。

或者

示例

示例

使用示例

pod 'LPDPopoverViewObject'

只需兩步--不需要關注彈出的方向和箭頭的位置

1. 初始化一個LPDPopoverViewObject對象

LPDPopoverViewObject *popoverViewObject = [[LPDPopoverViewObject alloc] initWithCellName:@"LPDTableViewCell" cellHeight:50 viewWidth:150 sourceObject:nil];
參數(shù)解釋:

(1) cellName: popoverView中內(nèi)部tableView所需cell的類名,該cell可以包含xib,也可以使用純代碼,需符合LPDPopoverCellDelegate協(xié)議,即實現(xiàn)- (void)setViewModel:(id)viewModel;方法。注:該cell決定了popoverView的樣式,可以任意定制。如 示例中的LPDTableViewCell:

LPDTableViewCell.h
#import <UIKit/UIKit.h>
#import "LPDPopoverCellProtocol.h"

@interface LPDTableViewCell : UITableViewCell <LPDPopoverCellDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *logo;
@property (weak, nonatomic) IBOutlet UILabel *title;
@property (weak, nonatomic) IBOutlet UILabel *content;
@end

LPDTableViewCell.m
#import "LPDTableViewCell.h"
#import "LPDViewModel.h"

@implementation LPDTableViewCell

- (void)awakeFromNib {
  [super awakeFromNib];
  self.contentView.backgroundColor = [UIColor blackColor];
  self.selectedBackgroundView = [[UIView alloc] initWithFrame:self.frame];
  self.selectedBackgroundView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.7];
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
}

- (void)setViewModel:(LPDViewModel *)model {
  self.logo.image = [UIImage imageNamed:model.logo];
  self.title.text = model.title;
  self.content.text = model.content;
}

@end

注:LPDViewModel為一個簡單封裝了三個NSString屬性的類(例)。

LPDTableViewCell.xib

LPDTableViewCell.xib

(2)cellHight: cell的高度。
(3)viewWidth: popoverView寬度。
(4)sourceObject: 決定了氣泡從哪一個視圖對象彈出,類型為UIView或UIBarButtonItem,在初始化時可以先不設置。

設置一些屬性
popoverViewObject.showTarget = self;  //showTarget必須為一個控制器
popoverViewObject.didSeletedDelegate = self;  //可以為任意對象,可實現(xiàn)選中某個cell時的委托方法
popoverViewObject.viewHeight = 150; //設置popoverView高度(默認為cell高度*cell數(shù)量,設置高度小于默認高度時可滾動)

2. Show!!

//  可以每次彈出時改變sourceObject
[self.popoverViewObject showWithDataArray:self.dataArray sourceObject:self.navigationItem.rightBarButtonItem];

//若初始化時設置過sourceObject,不用改變sourceObject
[self.popoverViewObject showWithDataArray:self.dataArray];

注:示例中self為一個控制器,popoverViewObject為其一個屬性。

參數(shù)解釋

dataArray: cell所需的數(shù)據(jù)源,在cell的委托方法里實現(xiàn)如何處理單個模型即可。

謝謝觀看

完整demo及代碼實現(xiàn)

水平有限,如有錯誤,請大家指出
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 2017.02.22 可以練習,每當這個時候,腦袋就犯困,我這腦袋真是神奇呀,一說讓你做事情,你就犯困,你可不要太...
    Carden閱讀 1,490評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,303評論 4 61
  • 參考書目 《買買買時代的行為經(jīng)濟學》關鍵詞:【優(yōu)惠券】【失去和得到】【損失厭惡心理】 俗話說的好:女人好心情,三...
    萌小Q在路上閱讀 2,013評論 8 8
  • 在我被阿卡麗深深傷害之后,我是拒絕玩上路的。 然而這場,ad,ap,sup,jg全部被預定了,我顫抖著選了個法洛士...
    夏梓Trista閱讀 357評論 0 0

友情鏈接更多精彩內(nèi)容