美文网首页
解决iOS获取button的titleLabel宽度和高度为0的

解决iOS获取button的titleLabel宽度和高度为0的

作者: JxSr程知农 | 来源:发表于2020-04-30 09:20 被阅读0次
/*
 * @desc  改变Button对象的水平方向布局排版。
 * @param alignment image和title整体的对齐属性(原生默认的是NSTextAlignmentCenter)。
 */
+ (void)adjustHorizonTitleWithTextAlignment:(NSTextAlignment)alignment forBtn:(UIButton *)btn {
    CGFloat titleWidth = btn.titleLabel.bounds.size.width;
    if (0 == titleWidth) {//加个保护。
        titleWidth = [btn.titleLabel sizeThatFits:btn.bounds.size].width;
    }
    CGFloat offsetX = (CGRectGetWidth(btn.bounds)-titleWidth)/2;
    
    switch (alignment) {
        case NSTextAlignmentLeft:
            btn.titleEdgeInsets = UIEdgeInsetsMake(0, -offsetX, 0, offsetX);
            break;
        case NSTextAlignmentRight:
            btn.titleEdgeInsets = UIEdgeInsetsMake(0, offsetX, 0, -offsetX);
            break;
            
        default://NSTextAlignmentCenter.
            btn.titleEdgeInsets = UIEdgeInsetsZero;
            break;
    }
}

相关文章

网友评论

      本文标题:解决iOS获取button的titleLabel宽度和高度为0的

      本文链接:https://www.haomeiwen.com/subject/wrwawhtx.html