您的位置:首页 > 产品设计 > UI/UE

UIButton基本属性及定义

2016-04-06 11:06 405 查看
第一、UIButton的定义

  UIButton *button=[[UIButton buttonWithType:(UIButtonType);


  能够定义的button类型有以下6种,

  typedef enum {
  UIButtonTypeCustom = 0, 自定义风格
  UIButtonTypeRoundedRect, 圆角矩形
  UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用
  UIButtonTypeInfoLight, 亮色感叹号
  UIButtonTypeInfoDark, 暗色感叹号
  UIButtonTypeContactAdd, 十字加号按钮
  } UIButtonType;


第二、设置frame

  button1.frame = CGRectMake(20, 20, 280, 40);
  [button setFrame:CGRectMake(20,20,50,50)];


第三、button背景色

  button1.backgroundColor = [UIColor clearColor];
  [button setBackgroundColor:[UIColor blueColor]];


第四、state状态

  forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现

  enum {
  UIControlStateNormal = 0, 常规状态显现
  UIControlStateHighlighted = 1 << 0, 高亮状态显现
  UIControlStateDisabled = 1 << 1, 禁用的状态才会显现
  UIControlStateSelected = 1 << 2, 选中状态
  UIControlStateApplication = 0x00FF0000, 当应用程序标志时
  UIControlStateReserved = 0xFF000000 为内部框架预留,可以不管
  };
  @property(nonatomic,getter=isEnabled)BOOL enabled; // default is YES. if NO, ignores touch events and subclasses may draw differently
  @property(nonatomic,getter=isSelected)BOOL selected; // default is NO may be used by some subclasses or by application
  @property(nonatomic,getter=isHighlighted)BOOL highlighted;


第五 、设置button填充图片和背景图片

  [buttonsetImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];
  [buttonsetBackgroundImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];


第六、设置button标题和标题颜色

  [button1 setTitle:@"点击" forState:UIControlStateNormal];
  [buttonsetTitleColor:[UIColorredColor]forState:UIControlStateNormal];


第七、设置按钮按下会发光

 button.showsTouchWhenHighlighted=NO;


第八、添加或删除事件处理

  [button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
  [btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];


第九、 设置按钮内部图片间距和标题间距

  UIEdgeInsets insets; // 设置按钮内部图片间距
  insets.top = insets.bottom = insets.right = insets.left = 10;
  bt.contentEdgeInsets = insets;
  bt.titleEdgeInsets = insets; // 标题间距
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: