zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异
    带您理解SQLSERVER是如何执行一个查询的
    SQL Server 2000中的并行处理和执行计划中的位图运算符
    SQL2005解密已经被加密的存储过程
    使用SQLServer 2008的CDC功能实现数据变更捕获
    like语句百分号前置会使用到索引吗?
    再说一下表分区
    SQLSERVER中的元数据锁
    验证非法电话号码
    OpenCV 2.2版本号以上显示图片到 MFC 的 Picture Control 控件中
  • 原文地址:https://www.cnblogs.com/huluo666/p/3526768.html
Copyright © 2011-2022 走看看