美文网首页
解决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