UIButton继承自UIView,虽然界面上的组件都继承自UIView,如果这个组件拥有丰富的事件那么肯定就要继承自UiView的一个子类UIControl,那么像UILable、UIImage这些轻量级组件都没有继承这个类,所以他们拥有的事件操作很少。
初始化一个Button
-(void) initWithRedBlock{ //初始化块 UIButton *btn=[[UIButton alloc]init]; //设置标记 btn.tag=kRedBtnTag; //设置背景色 btn.backgroundColor=[UIColor redColor]; //设置坐标和大小 btn.frame=CGRectMake(10, 20, 100, 100); //正常状态显示 [btn setTitle:@"有本事点我一下" forState:UIControlStateNormal]; //高亮显示 [btn setTitle:@"老子点的就是你" forState:UIControlStateHighlighted]; //高亮时的颜色 [btn setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted]; [self.view addSubview:btn]; } |
#pragma mark -初始化 -(void) createBtn:(NSString *)normal highLighted:(NSString *) hilight tag:(NSInteger)tag ponit:(CGPoint) ponit{ UIButton *btn=[[UIButton alloc]init]; //设置标记 btn.tag=tag; //设置默认状态下的背景图 UIImage *normalImage=[UIImage imageNamed:normal]; UIImage *highLightImage=[UIImage imageNamed:hilight]; [btn setBackgroundImage:normalImage forState:UIControlStateNormal]; [btn setBackgroundImage:highLightImage forState:UIControlStateHighlighted]; //设置坐标 btn.frame=(CGRect){ponit,highLightImage.size}; //监听被点击事件 [btn addTarget:self action:@selector(changeBlock:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; } |
- (void)viewDidLoad { [super viewDidLoad]; [self initWithRedBlock];
//初始化 [self createBtn:@"sub_black_prev.png" highLighted:@"sub_blue_prev.png" tag:kLeftBtnTag ponit:CGPointMake(20, 400)];
} |