iOS - UIControl
生活随笔
收集整理的這篇文章主要介紹了
iOS - UIControl
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIControl : UIView@available(iOS 2.0, *) public class UIControl : UIView- UIControl 從字面翻譯成為控制器,可以觸發事件,達到和用戶進行交互。
1、UIControl 的創建
Objective-C
// 實例化 UIControl 對象UIControl *control = [[UIControl alloc] initWithFrame:CGRectMake(self.view.bounds.size.width/2 - 100, 100, 200, 100)];control.backgroundColor = [UIColor redColor];[self.view addSubview:control];// 添加/刪除觸發事件/*- (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;- (void)removeTarget:(nullable id)target action:(nullable SEL)action forControlEvents:(UIControlEvents)controlEvents;(id)target: 響應對象,就是觸發了 control 的某個事件后響應誰的方法(SEL)action: 觸發某個事件后響應 target 的哪個方法(UIControlEvents)controlEvents: 觸發 control 的哪個事件UIControlEventTouchDown // 按下UIControlEventTouchDownRepeat // 雙擊,連續按下2次UIControlEventTouchDragInside // 內部拖動,不松手就觸發事件,一直觸發UIControlEventTouchDragOutside // 向外拖出,不松手就觸發事件,一直觸發UIControlEventTouchDragEnterUIControlEventTouchDragExit // 向外拖出,不松手就觸發事件,只觸發一次UIControlEventTouchUpInside // 單擊UIControlEventTouchUpOutside // 向外拖出,松手后觸發事件UIControlEventTouchCancelUIControlEventValueChanged // 數值改變,sliders, etc.UIControlEventEditingDidBegin // 開始編輯,UITextFieldUIControlEventEditingChanged // 編輯中UIControlEventEditingDidEnd // 結束編輯UIControlEventEditingDidEndOnExit // 結束編輯,'return key' ending editingUIControlEventAllTouchEvents // 所有事件,for touch eventsUIControlEventAllEditingEvents // 所有編輯事件,for UITextFieldUIControlEventApplicationReserved // range available for application useUIControlEventSystemReserved // range reserved for internal framework useUIControlEventAllEvents*/// 添加觸發事件[control addTarget:self action:@selector(controlClick:) forControlEvents:UIControlEventTouchUpInside];// 一個控件可以添加多個事件[control addTarget:self action:@selector(controlClickOther:) forControlEvents:UIControlEventTouchDragOutside];// 刪除添加的事件[control removeTarget:self action:@selector(controlClickOther:) forControlEvents:UIControlEventTouchDragOutside];Swift
// 實例化 UIControl 對象let control:UIControl = UIControl(frame: CGRectMake(self.view.bounds.size.width/2 - 100, 100, 200, 100))control.backgroundColor = UIColor.redColor()self.view.addSubview(control)// 添加/刪除觸發事件/*public func addTarget(target: AnyObject?, action: Selector, forControlEvents controlEvents: UIControlEvents)public func removeTarget(target: AnyObject?, action: Selector, forControlEvents controlEvents: UIControlEvents)target: 響應對象,就是觸發了 control 的某個事件后響應誰的方法action: 觸發某個事件后響應 target 的哪個方法controlEvents: 觸發 control 的哪個事件TouchDown // 按下TouchDownRepeat // 雙擊,連續按下2次TouchDragInside // 內部拖動,不松手就觸發事件,一直觸發TouchDragOutside // 向外拖出,不松手就觸發事件,一直觸發TouchDragEnter TouchDragExit // 向外拖出,不松手就觸發事件,只觸發一次TouchUpInside // 單擊TouchUpOutside // 向外拖出,松手后觸發事件TouchCancel ValueChanged // 數值改變,sliders, etc.EditingDidBegin // 開始編輯,UITextFieldEditingChanged // 編輯中EditingDidEnd // 結束編輯EditingDidEndOnExit // 結束編輯,'return key' ending editingAllTouchEvents // 所有事件,for touch eventsAllEditingEvents // 所有編輯事件,for UITextFieldApplicationReserved // range available for application useSystemReserved // range reserved for internal framework useAllEvents */// 添加觸發事件control.addTarget(self, action: #selector(UiControl.controlClick(_:)), forControlEvents: .TouchUpInside)// 一個控件可以添加多個事件control.addTarget(self, action: #selector(UiControl.controlClickOther(_:)), forControlEvents: .TouchDragOutside)// 刪除添加的事件control.removeTarget(self, action: #selector(UiControl.controlClickOther(_:)), forControlEvents: .TouchDragOutside)
2、自定義點擊觸發事件處理
Objective-C
// 控件觸發事件處理,一般響應方法都會有一個參數,沒有也可以,該參數一般是觸發的對象- (void)controlClick: (UIControl *)control {}- (void)controlClickOther: (UIControl *)control {}Swift
// 控件觸發事件處理,一般響應方法都會有一個參數,沒有也可以,該參數一般是觸發的對象func controlClick(control:UIControl) {}func controlClickOther(control:UIControl) {}
轉載于:https://www.cnblogs.com/QianChia/p/5754473.html
總結
以上是生活随笔為你收集整理的iOS - UIControl的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS回顾笔记( 01 )-- XIB
- 下一篇: jquery选择器之属性选择器