UIButton属性

  1 //
  2 //  UIButton1.h
  3 //  UIKit
  4 //http://blog.163.com/fuxiaohui@126/blog/static/131745826201172601821628/
  5 //  Copyright (c) 2005-2013, Apple Inc. All rights reserved.
  6 //
  7 
  8 #import <Foundation/Foundation.h>
  9 #import <UIKit/UIControl.h>
 10 #import <UIKit/UIGeometry.h>
 11 #import <UIKit/UIStringDrawing.h>
 12 #import <UIKit/UIKitDefines.h>
 13 
 14 @class UIImage, UIFont, UIColor, UIImageView, UILabel;
 15 
 16 //button类型
 17 typedef NS_ENUM(NSInteger, UIButtonType) {
 18     UIButtonTypeCustom = 0,        //自定义                 // no button type
 19     UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // standard system button
 20     
 21     UIButtonTypeDetailDisclosure,
 22     UIButtonTypeInfoLight,
 23     UIButtonTypeInfoDark,
 24     UIButtonTypeContactAdd,
 25     
 26     UIButtonTypeRoundedRect = UIButtonTypeSystem,   // Deprecated(已过时), use UIButtonTypeSystem instead(代替)
 27 };
 28 
 29 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIButton : UIControl <NSCoding> {
 30 @private
 31     //Edge n. 边缘;  inset  vt. 嵌入;插入
 32     //UIEdgeInsets==>这货其实就是插入间隔区域。正值表示间隔值,负值表示超出参照物的距离。
 33     //UIEdgeInsets insets = {top, left, bottom, right};  默认都为0
 34     CFMutableDictionaryRef _contentLookup;
 35     UIEdgeInsets           _contentEdgeInsets;
 36     UIEdgeInsets           _titleEdgeInsets;
 37     UIEdgeInsets           _imageEdgeInsets;
 38     UIImageView           *_backgroundView;
 39     UIImageView           *_imageView;
 40     UILabel               *_titleView;
 41     BOOL                   _initialized;
 42     UIControlState         _lastDrawingControlState;
 43     struct {
 44         unsigned int reversesTitleShadowWhenHighlighted:1;
 45         unsigned int adjustsImageWhenHighlighted:1;
 46         unsigned int adjustsImageWhenDisabled:1;
 47         unsigned int autosizeToFit:1;
 48         unsigned int disabledDimsImage:1;
 49         unsigned int showsTouchWhenHighlighted:1;
 50         unsigned int buttonType:8;
 51         unsigned int shouldHandleScrollerMouseEvent:1;
 52         unsigned int titleFrozen:1;
 53     } _buttonFlags;
 54 }
 55 
 56 + (id)buttonWithType:(UIButtonType)buttonType;
 57 ////默认为UIEdgeInsetsZero
 58 @property(nonatomic)          UIEdgeInsets contentEdgeInsets UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero
 59 @property(nonatomic)          UIEdgeInsets titleEdgeInsets;                // default is UIEdgeInsetsZero
 60 //默认为NO.如果为YES,当按钮的状态进行切换时,文本的影子会反转
 61 @property(nonatomic)          BOOL         reversesTitleShadowWhenHighlighted; // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
 62 @property(nonatomic)          UIEdgeInsets imageEdgeInsets;                // default is UIEdgeInsetsZero
 63 //默认为YES.如果为YES,当按钮状态为高亮时,图像变暗
 64 @property(nonatomic)          BOOL         adjustsImageWhenHighlighted;    // default is YES. if YES, image is drawn darker when highlighted(pressed)
 65 //默认为YES.如果为YES,当按钮状态为禁用时,图像变暗
 66 @property(nonatomic)          BOOL         adjustsImageWhenDisabled;       // default is YES. if YES, image is drawn lighter when disabled
 67 //默认为NO.如果为YES, 当按钮状态为高亮时,显示一个简单的反馈(类似于光环)
 68 @property(nonatomic)          BOOL         showsTouchWhenHighlighted;      // default is NO. if YES, show a simple feedback (currently a glow) while highlighted
 69 @property(nonatomic,retain)   UIColor     *tintColor NS_AVAILABLE_IOS(5_0); // The tintColor is inherited through the superview hierarchy. See UIView for more information.
 70 @property(nonatomic,readonly) UIButtonType buttonType;
 71 
 72 // you can set the image, title color, title shadow color, and background image to use for each state. you can specify data
 73 // for a combined state by using the flags added together. in general, you should specify a value for the normal state to be used
 74 // by other states which don't have a custom value set
 75 
 76 - (void)setTitle:(NSString *)title forState:(UIControlState)state;                     // default is nil. title is assumed to be single line
 77 - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default if nil. use opaque white
 78 - (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil. use 50% black
 79 - (void)setImage:(UIImage *)image forState:(UIControlState)state;                      // default is nil. should be same size if different for different states
 80 - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil
 81 - (void)setAttributedTitle:(NSAttributedString *)title forState:(UIControlState)state NS_AVAILABLE_IOS(6_0); // default is nil. title is assumed to be single line
 82 
 83 - (NSString *)titleForState:(UIControlState)state;          // these getters only take a single state value
 84 - (UIColor *)titleColorForState:(UIControlState)state;
 85 - (UIColor *)titleShadowColorForState:(UIControlState)state;
 86 - (UIImage *)imageForState:(UIControlState)state;
 87 - (UIImage *)backgroundImageForState:(UIControlState)state;
 88 - (NSAttributedString *)attributedTitleForState:(UIControlState)state NS_AVAILABLE_IOS(6_0);
 89 
 90 // these are the values that will be used for the current state. you can also use these for overrides. a heuristic will be used to
 91 // determine what image to choose based on the explict states set. For example, the 'normal' state value will be used for all states
 92 // that don't have their own image defined.
 93 
 94 @property(nonatomic,readonly,retain) NSString *currentTitle;             // normal/highlighted/selected/disabled. can return nil
 95 @property(nonatomic,readonly,retain) UIColor  *currentTitleColor;        // normal/highlighted/selected/disabled. always returns non-nil. default is white(1,1)
 96 @property(nonatomic,readonly,retain) UIColor  *currentTitleShadowColor;  // normal/highlighted/selected/disabled. default is white(0,0.5).
 97 @property(nonatomic,readonly,retain) UIImage  *currentImage;             // normal/highlighted/selected/disabled. can return nil
 98 @property(nonatomic,readonly,retain) UIImage  *currentBackgroundImage;   // normal/highlighted/selected/disabled. can return nil
 99 @property(nonatomic,readonly,retain) NSAttributedString *currentAttributedTitle NS_AVAILABLE_IOS(6_0);  // normal/highlighted/selected/disabled. can return nil
100 
101 // return title and image views. will always create them if necessary. always returns nil for system buttons
102 @property(nonatomic,readonly,retain) UILabel     *titleLabel NS_AVAILABLE_IOS(3_0);
103 @property(nonatomic,readonly,retain) UIImageView *imageView  NS_AVAILABLE_IOS(3_0);
104 
105 // these return the rectangle for the background (assumes bounds), the content (image + title) and for the image and title separately. the content rect is calculated based
106 // on the title and image size and padding and then adjusted based on the control content alignment. there are no draw methods since the contents
107 // are rendered in separate subviews (UIImageView, UILabel)
108 
109 - (CGRect)backgroundRectForBounds:(CGRect)bounds;
110 - (CGRect)contentRectForBounds:(CGRect)bounds;
111 - (CGRect)titleRectForContentRect:(CGRect)contentRect;
112 - (CGRect)imageRectForContentRect:(CGRect)contentRect;
113 @end
114 
115 @interface UIButton(UIButtonDeprecated)
116 
117 @property(nonatomic,retain) UIFont         *font              NS_DEPRECATED_IOS(2_0, 3_0);
118 @property(nonatomic)        NSLineBreakMode lineBreakMode     NS_DEPRECATED_IOS(2_0, 3_0);
119 @property(nonatomic)        CGSize          titleShadowOffset NS_DEPRECATED_IOS(2_0, 3_0);
120 
121 @end
原文地址:https://www.cnblogs.com/huluo666/p/3526768.html