最近閑著沒事,就想模仿模仿一些NB應用的一些東西,這不,感覺微信的底部彈框看著還不錯,于是就想試試寫寫(總不能老是用系統(tǒng)的吧),廢話不多說,先看效果圖
整個功能是封裝的一個view,因此作為工具在合適不過了,拿到哪里都能用。
利用block,將點擊不同的事件傳到當前控制器,方便,簡單,整個控制器中代碼看著也不會冗余。
controller中的調用:
self.popView = [[ZYFPopview alloc]initInView:[UIApplication sharedApplication].keyWindow rows:@[@"0",@"1",@"2"] doneBlock:^(NSInteger selectIndex) {
NSLog(@"%ld",selectIndex);
} cancleBlock:^{
NSLog(@"取消");
}];
[self.popView showPopView];
ZYFPopView中的創(chuàng)建:
-(instancetype)initInView:(UIView *)hostView rows:(NSMutableArray *)items doneBlock:(void (^)(NSInteger))ondoneBlock cancleBlock:(void (^)())cancleBlock{
self = [super initWithFrame:hostView.bounds];
if (self) {
self.hostView = hostView;
self.data = items;
self.onDoneBlock = ondoneBlock;
self.onCancleBlock = cancleBlock;
[self setupView];
}
return self;
}
在創(chuàng)建之前,首先定義好選中的block和取消的block。初學iOS時,看見這些功能,總感覺不知道怎么寫,但是隨著學習的深入,慢慢你會發(fā)現,其實都不難。
最后附上GitHub鏈接:https://github.com/Dreamer929/WeChat-and-Alipay-bottom-bomb-box
想看源碼的同學可以下載看看。