在編寫(xiě)應(yīng)用程序時(shí),UILabel Button Textfield這幾個(gè)控件出現(xiàn)頻率基本上算是最高的。有的時(shí)候在初始化時(shí)會(huì)添加好多的屬性,如果是代碼寫(xiě)頁(yè)面,即使賦值粘貼的話,也需要修改好多屬性名稱。
因此作者寫(xiě)了一個(gè)小的分類(lèi),為這幾個(gè)常用的控件的屬性使用了鏈?zhǔn)骄幊?,其中?duì)點(diǎn)擊方法進(jìn)行了抽離,通過(guò)block方式就能調(diào)用。并且點(diǎn)擊事件同樣也可以使用·語(yǔ)法來(lái)進(jìn)行銜接。
為UITextView添加了placeholder,可以設(shè)置文字和顏色,字體是隨textview字體進(jìn)行變化的,同時(shí)可以設(shè)置左中右位置,不過(guò)沒(méi)對(duì)上下格式進(jìn)行處理。
使用方式大概是這樣的:
__weak typeof(self) weakself = self;
UILabel *label = (UILabel *)UILabel.new
.gyText(@"asdfasdf") // 設(shè)置label文字
.gyTextColor(UIColor.greenColor) // 設(shè)置文字顏色
.gyBackgroundColor(UIColor.purpleColor) // 背景色
.gyGestureTap(^(UITapGestureRecognizer *gesture){ // 點(diǎn)擊事件 注意循環(huán)引用
NSLog(@"短按");
})
.gyGestureLongPress(^(UILongPressGestureRecognizer *gesture){ // 長(zhǎng)按事件 注意循環(huán)引用
__strong typeof(weakself) strongSelf = weakself;
NSLog(@"長(zhǎng)按");
[strongSelf dismissViewControllerAnimated:YES completion:nil];
})
.gyGestureLongPressDuratime(1.5); // 設(shè)置長(zhǎng)按事件事件 如果添加在前面會(huì)無(wú)效 暫時(shí)考慮如果設(shè)置時(shí)間就有長(zhǎng)按方法
label.frame = CGRectMake(0, 400, 300, 40);
[self.view addSubview:label];
暫時(shí)也沒(méi)有添加太多的屬性,因?yàn)槎际请S用隨寫(xiě)的。
很多屬性都可以在類(lèi)里面查看。
而且因?yàn)楣ぷ鲿r(shí)間占用比較多,有一些bug沒(méi)發(fā)現(xiàn)或者暫時(shí)沒(méi)有處理,如果有發(fā)現(xiàn)的也希望能幫忙提出以下。
github地址
喜歡的話在github頁(yè)面幫忙點(diǎn)個(gè)贊。