iOS_UIButton 实现button的内容左对齐以及图片和标题中间的间隔

要实现一个类似折叠效果的按钮  不多说 直接上代码和效果


- (void)createButton
{
    UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 55)];
    button.backgroundColor = [UIColor orangeColor];
    [button setTitle:@"你到底要不要点我呀" forState:UIControlStateNormal];
    button.titleLabel.textColor = [UIColor blackColor];
    [button addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];
    [button setImage:[UIImage imageNamed:@"arrow_down.png"] forState:UIControlStateNormal];
    button.adjustsImageWhenHighlighted = NO;// 取消图片的高亮状态
    
    button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;// 水平左对齐
    button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;// 垂直居中对齐
    
    /**
     * 按照上面的操作 按钮的内容对津贴屏幕左边缘 不美观 可以添加一下代码实现间隔已达到美观
     * UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
     *    top: 为正数:表示向下偏移  为负数:表示向上偏移
     *   left: 为整数:表示向右偏移  为负数:表示向左偏移
     * bottom: 为整数:表示向上偏移  为负数:表示向下偏移
     *  right: 为整数:表示向左偏移  为负数:表示向右偏移
     *
    **/
    button.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);//
    button.titleEdgeInsets = UIEdgeInsetsMake(0, button.imageView.frame.size.width, 0, 0);
    
    [self.view addSubview:button];
    

}
// 点击方法
- (void)onClick:(UIButton *)sender
{
    sender.selected = !sender.selected;
    if (sender.selected == YES) {
        
        sender.backgroundColor = [UIColor orangeColor];
        
    }else{
    
        sender.backgroundColor = [UIColor blueColor];
    }
 
}


实现效果:

iOS_UIButton 实现button的内容左对齐以及图片和标题中间的间隔_第1张图片

你可能感兴趣的:(iOS)