IOS图文按钮居中排列

来源:互联网 发布:如何申请淘宝 编辑:程序博客网 时间:2024/06/17 11:12




+ (UIButton *)verticalTitle:(NSString *)title image:(UIImage *)image xy:(CGSize)xy {// title按钮文字 image按钮图片 xy按钮的位置

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    
    UIFont *font = [UIFont systemFontOfSize:10];
    btn.titleLabel.font = font;
    
    [btn setImage:image forState:UIControlStateNormal];
    [btn setImage:image forState:UIControlStateHighlighted];
    
    [btn setTitle:title forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
   
    NSDictionary *btnAttributes = [NSDictionary dictionaryWithObjectsAndKeys:btn.titleLabel.font, NSFontAttributeName, nil];
    CGRect textRect = [title boundingRectWithSize:CGSizeMake(MAXFLOAT, btn.titleLabel.frame.size.height) options:kNilOptions attributes:btnAttributes context:nil];
    CGSize titleSize = textRect.size;
      
    CGFloat totalHeight = titleSize.height + image.size.height;
    
    [btn setFrame:CGRectMake(xy.width, xy.height, titleSize.width > image.size.width ? ceilf(titleSize.width) : ceil(image.size.width), totalHeight)];
    
    btn.imageEdgeInsets = UIEdgeInsetsMake(-(totalHeight - image.size.height), 0, 0, -titleSize.width);
    btn.titleEdgeInsets = UIEdgeInsetsMake(0, - image.size.width, - (totalHeight - titleSize.height), 0);
    
    return btn;
}
0 0
原创粉丝点击