資料介紹
軟件簡介
TSMenuLabel是一個給Label加menuController的控件
0. 需求分析
需要復(fù)制商品標(biāo)題,需要在Label上加MenuController,但是UILabel是自己不帶MenuController,所以自己寫了一個
### 1. 效果 TSMenuLabel 是繼承自UILabel的控件,給UILabel添加了手勢,并添加了menuViewController,點擊會有事件
效果查看:
2. 封裝方法
/** ?初始化方法?@param?menuType?彈窗類型 ?@param?gestureType?手勢類型 ?@return?返回label ?*/ +?(instancetype)mneuLabelWithMenuType:(TSMneuLabelMenuType)menuType ???????????????????????andGestureType:(TSMneuLabelGestureType)gestureType;
3. 原理
讓UILabel能處理MenuControler,需要設(shè)置以下代碼
-?(BOOL)canBecomeFirstResponder{????return?YES; }/** ?*?label能執(zhí)行哪些操作(比如copy,?paste等等) ?*?@return??YES:支持這種操作 ?*??由于這里需要實現(xiàn)自定義的中文菜單,而不是使用默認(rèn)的,所以這里選擇NO ?*/-?(BOOL)canPerformAction:(SEL)action?withSender:(id)sender{????//這里也是間接影響顯示在UIMenuController的控件 ????if?(action?==?@selector(copy:))?{????????return?YES;//如果要去掉?拷貝?這里返回NO ????}else?if?(action?==?@selector(flag:)){????????return?NO;//這里如果是no?就不允許操作和顯示 ????}else?if?(action?==?@selector(approve:)){????????return?YES; ????}else?if?(action?==?@selector(deny:)){????????return?YES; ????}else{????????return?[super?canPerformAction:action?withSender:sender]; ????} }
4. 擴展
更多手勢和事件需要自己添加,添加方法:
-
添加事件
在枚舉中添加一個枚舉,比如TSMneuLabelTypeDemo
typedef?NS_ENUM(NSInteger,?TSMneuLabelMenuType)?{ ????TSMneuLabelTypeDefault,//啥也沒有 ????TSMneuLabelTypeCopy?=?1,//只有復(fù)制 ????TSMneuLabelTypeDemo,//栗子};
在處理手勢中添加menu
-(void)handleTap:(UIGestureRecognizer*)?recognizer {????????case?TSMneuLabelTypeDemo:{ ????????????UIMenuItem?*flag?=?[[UIMenuItem?alloc]?initWithTitle:@"abc"?action:@selector(flag:)]; ????????????UIMenuItem?*approve?=?[[UIMenuItem?alloc]?initWithTitle:@"Approve"?action:@selector(approve:)]; ????????????UIMenuItem?*deny?=?[[UIMenuItem?alloc]?initWithTitle:@"分享"?action:@selector(deny:)]; ????????????[menu?setMenuItems:@[approve,flag,deny]]; ????????}????????????break; }
添加事件
-?(void)approve:(id)sender?{ ????NSLog(@"Approve"); }
允許事件
-?(BOOL)canPerformAction:(SEL)action?withSender:(id)sender{????//這里也是間接影響顯示在UIMenuController的控件 ????if?(action?==?@selector(copy:))?{????????return?YES;//如果要去掉?拷貝?這里返回NO ????}else?if?(action?==?@selector(flag:)){????????return?NO;//這里如果是no?就不允許操作和顯示 ????}else?if?(action?==?@selector(approve:)){????????return?YES; ????}else?if?(action?==?@selector(deny:)){????????return?YES; ????}else{????????return?[super?canPerformAction:action?withSender:sender]; ????} }
-
添加手勢
首先添加一個枚舉
typedef?NS_ENUM(NSInteger,?TSMneuLabelGestureType)?{ ????TSMneuLabelGestureTypeNone,//強制不作處理 ????TSMneuLabelGestureTypeDefault?=?0,//沒賦值會走tap ????TSMneuLabelGestureTypeTap,//默認(rèn)單擊 ????TSMneuLabelGestureTypeLongTap,//長按};
然后添加一個手勢
-?(void)setGestureType:(TSMneuLabelGestureType)gestureType{????//移除所有手勢 ????for?(UIGestureRecognizer?*ges?in?self.gestureRecognizers)?{ ????????[self?removeGestureRecognizer:ges]; ????}????switch?(gestureType)?{????????case?TSMneuLabelGestureTypeTap:?{ ????????????UITapGestureRecognizer?*touch?=?[[UITapGestureRecognizer?alloc]?initWithTarget:self?action:@selector(handleTap:)]; ????????????touch.numberOfTapsRequired?=?1; ????????????[self?addGestureRecognizer:touch]; ????????}????????????break;????????case?TSMneuLabelGestureTypeLongTap:?{ ????????????UILongPressGestureRecognizer?*touch?=?[[UILongPressGestureRecognizer?alloc]?initWithTarget:self?action:@selector(handleTap:)]; ????????????[self?addGestureRecognizer:touch]; ????????}????????????break; ????????default: ????????????break; ????} }
-
更多
-
拋出事件可以利用已經(jīng)定義好的Block來處理 ``` typedef void(^TSMneuLabelHandler)(TSMneuLabel * menuLabel);
- labview的按鈕控件匯總 384次下載
- 大彩串口屏控件教程15 - 圓形進度條控件應(yīng)用
- 大彩串口屏控件教程14 - 串口屏歷史曲線控件應(yīng)用
- 大彩串口屏控件教程13 - 串口屏數(shù)據(jù)記錄控件
- 大彩串口屏控件教程11 - 串口屏滑動選擇控件應(yīng)用
- 大彩串口屏控件教程10 - 串口屏菜單控件的應(yīng)用
- 大彩串口屏控件教程9 - 串口屏曲線控件應(yīng)用
- 大彩串口屏控件教程8 - 串口屏圖標(biāo)控件
- 大彩串口屏控件教程7 - 串口屏動畫控件的應(yīng)用
- 大彩串口屏控件教程6 - 串口屏RTC控件的應(yīng)用
- 大彩串口屏控件教程4 - 串口屏滑塊控件應(yīng)用
- 大彩串口屏控件教程2 - 串口屏文本控件應(yīng)用
- 大彩串口屏控件教程1 - 串口屏按鈕控件應(yīng)用
- AN1246中文手冊之如何在Microchip圖形庫中創(chuàng)建控件
- 如何在Microchip圖形庫中創(chuàng)建控件 2次下載
- 半加器和全加器的功能特點 1782次閱讀
- 機智云ESP8266開發(fā)板RGB彩燈控件 442次閱讀
- 圖片動畫控件和Video image控件的使用方法 1023次閱讀
- LabVIEW Tab選項卡控件XTab的使用方法 2532次閱讀
- comboBox控件的數(shù)據(jù)綁定方法是什么 3601次閱讀
- 活學(xué)活用LTspice進行電路設(shè)計—用Label Net繪制清晰電路圖 5621次閱讀
- LabVIEW的編程之道—Quick Drop-隱藏控件 4395次閱讀
- AWTK控件serial_widget的使用方法 1699次閱讀
- LabVIEW分割條控件的設(shè)置和界面設(shè)計實例 6999次閱讀
- 如何給功放機加功力? 9472次閱讀
- 單獨給手機鋰電池充電需不需要加一個保護板 2w次閱讀
- 電路板加電的技巧分享 6666次閱讀
- LabWindows/CVI虛擬儀器 Tab 控件 7355次閱讀
- Linux系統(tǒng)軟件加殼保護技術(shù)的改進設(shè)計 1422次閱讀
- 技術(shù)評測:一加3T相比一加3究竟好在哪? 1.7w次閱讀
下載排行
本周
- 1NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊
- 0.40 MB | 4次下載 | 2 積分
- 2光伏并網(wǎng)逆變器原理
- 7.31 MB | 3次下載 | 2 積分
- 3T20電烙鐵原理圖資料
- 0.27 MB | 2次下載 | 免費
- 4PL83081 雙路恒流同步降壓轉(zhuǎn)換器技術(shù)手冊
- 3.34 MB | 1次下載 | 免費
- 5PL88052 4.8V至60V輸入,5A,同步降壓轉(zhuǎn)換器技術(shù)手冊
- 3.36 MB | 1次下載 | 免費
- 6LX8201微孔霧化驅(qū)動芯片電路圖資料
- 0.15 MB | 1次下載 | 免費
- 7PC6200_7V直流電機驅(qū)動器技術(shù)手冊
- 0.47 MB | 次下載 | 免費
- 8恒溫晶體振蕩器(OCXO)FOC-2D:20.6×20.6mm在通信基站和測試設(shè)備中的應(yīng)用參數(shù)規(guī)格
- 485.75 KB | 次下載 | 免費
本月
- 1如何看懂電子電路圖
- 12.88 MB | 329次下載 | 免費
- 2RK3588數(shù)據(jù)手冊
- 2.24 MB | 14次下載 | 免費
- 3PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 12次下載 | 免費
- 4STM32F10x參考手冊資料
- 13.64 MB | 12次下載 | 1 積分
- 5OAH0428 V1.0英文規(guī)格書
- 5.86 MB | 8次下載 | 免費
- 6NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊
- 0.40 MB | 4次下載 | 2 積分
- 7PID控制算法學(xué)習(xí)筆記資料
- 3.43 MB | 3次下載 | 2 積分
- 8光伏并網(wǎng)逆變器原理
- 7.31 MB | 3次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935132次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191415次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183349次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81599次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65990次下載 | 10 積分
評論