chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>TSMenuLabel給Label加menuController的控件

TSMenuLabel給Label加menuController的控件

2022-06-24 | zip | 0.67 MB | 次下載 | 免費

資料介紹

授權(quán)協(xié)議 GPL
開發(fā)語言 Objective-C
軟件類型 開源軟件
所屬分類 iOS代碼庫、 標(biāo)簽(Label)

軟件簡介

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. 擴展

更多手勢和事件需要自己添加,添加方法:

  1. 添加事件

在枚舉中添加一個枚舉,比如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];
????}
}
  1. 添加手勢

首先添加一個枚舉

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;
????}

}
  1. 更多

  • 拋出事件可以利用已經(jīng)定義好的Block來處理 ``` typedef void(^TSMneuLabelHandler)(TSMneuLabel * menuLabel);

?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊
  2. 0.40 MB   |  4次下載  |  2 積分
  3. 2光伏并網(wǎng)逆變器原理
  4. 7.31 MB   |  3次下載  |  2 積分
  5. 3T20電烙鐵原理圖資料
  6. 0.27 MB   |  2次下載  |  免費
  7. 4PL83081 雙路恒流同步降壓轉(zhuǎn)換器技術(shù)手冊
  8. 3.34 MB   |  1次下載  |  免費
  9. 5PL88052 4.8V至60V輸入,5A,同步降壓轉(zhuǎn)換器技術(shù)手冊
  10. 3.36 MB   |  1次下載  |  免費
  11. 6LX8201微孔霧化驅(qū)動芯片電路圖資料
  12. 0.15 MB   |  1次下載  |  免費
  13. 7PC6200_7V直流電機驅(qū)動器技術(shù)手冊
  14. 0.47 MB   |  次下載  |  免費
  15. 8恒溫晶體振蕩器(OCXO)FOC-2D:20.6×20.6mm在通信基站和測試設(shè)備中的應(yīng)用參數(shù)規(guī)格
  16. 485.75 KB  |  次下載  |  免費

本月

  1. 1如何看懂電子電路圖
  2. 12.88 MB   |  329次下載  |  免費
  3. 2RK3588數(shù)據(jù)手冊
  4. 2.24 MB   |  14次下載  |  免費
  5. 3PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
  6. 1.63 MB   |  12次下載  |  免費
  7. 4STM32F10x參考手冊資料
  8. 13.64 MB   |  12次下載  |  1 積分
  9. 5OAH0428 V1.0英文規(guī)格書
  10. 5.86 MB   |  8次下載  |  免費
  11. 6NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊
  12. 0.40 MB   |  4次下載  |  2 積分
  13. 7PID控制算法學(xué)習(xí)筆記資料
  14. 3.43 MB   |  3次下載  |  2 積分
  15. 8光伏并網(wǎng)逆變器原理
  16. 7.31 MB   |  3次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935132次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191415次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183349次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81599次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65990次下載  |  10 積分