iOS 控件基类之 UIControl

从所有能接受用户触摸事件的控件来看,他们都直接或间接地继承与UIControl,当然他本身也是继承与一个最基础的视图控件UIView,这个下一篇会说。然而,UIControl不能直接被使用,但是它定义了它所有子类的共同行为,提供了共有的接口。

@property(nonatomic,getter=isEnabled) BOOL enabled;   
//默认是YES,如果要禁用这个控件,设为NO
                               
@property(nonatomic,getter=isSelected) BOOL selected;    
//当控件被选中时,selected属性被设为YES,当然为了达到某种目的,可以让控件自动选择自己                          
@property(nonatomic,getter=isHighlighted) BOOL highlighted;
//我只知道,在滑动slide的时候,这个属性是为YES的

@property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment;  
//设置控件在垂直方向上如何显示本身的内容
   
@property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment;
//设置控件如何在水平方向上如何显示本身的内容 

@property(nonatomic,readonly) UIControlState state;    
//获取控件现在所处的状态
             
@property(nonatomic,readonly,getter=isTracking) BOOL tracking;
//判断是否处在在tracking这个状态

@property(nonatomic,readonly,getter=isTouchInside) BOOL touchInside; 
//判断是否处在touchInside这个状态

//线面这四个方法是一个点击事件所处的四个状态
- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;
- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;
- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;
- (void)cancelTrackingWithEvent:(UIEvent *)event;   


- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
//为控件绑定一个事件和这个事件所响应的方法

- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
//删除一个或者多个事件的响应动作,使用nil可将给定目标事件的所有动作删除

- (NSSet *)allTargets; 
//获取这个控件的所有指定动作列表
                                                                    
- (UIControlEvents)allControlEvents;   
//获取控件的所有事件列表                                                   
- (NSArray *)actionsForTarget:(id)target forControlEvent:(UIControlEvents)controlEvent;    


- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event;
- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents;
// 如果设计了一个自定义控件类,可以使用sendActionsForControlEvent方法,为基本的UIControl事件或自己的自定义事件发送通知。例如,如果你的控件值正在发生变化,就可以发送相应通知,通过控件的代码可以指定时间目标,这个通知将被传播到这些指定的目标                        

你可能感兴趣的:(iOS 控件基类之 UIControl)