UIButton图片文字位置

分类:
.h中

typedef NS_ENUM(NSUInteger, HJButtonEdgeInsetsStyle) {
    HJButtonEdgeInsetsStyleTop, // image在上,label在下
    HJButtonEdgeInsetsStyleLeft, // image在左,label在右
    HJButtonEdgeInsetsStyleBottom, // image在下,label在上
    HJButtonEdgeInsetsStyleRight // image在右,label在左
}; - (void)layoutButtonWithEdgeInsetsStyle:(HJButtonEdgeInsetsStyle)style imageTitleSpace:(CGFloat)space;

--
space 是图片与文字的间距。
.m中

 - (void)layoutButtonWithEdgeInsetsStyle:(HJButtonEdgeInsetsStyle)style imageTitleSpace:(CGFloat)space
{
     switch (style) {
        case HJButtonEdgeInsetsStyleTop:
        {
            [self setImageEdgeInsets:UIEdgeInsetsMake(-self.titleLabel.intrinsicContentSize.height, 0, 0, -self.titleLabel.intrinsicContentSize.width)];
            [self setTitleEdgeInsets:UIEdgeInsetsMake(self.currentImage.size.height+space, -self.currentImage.size.width, 0, 0)];
        }
            break;
        case HJButtonEdgeInsetsStyleLeft:
        {
            [self setTitleEdgeInsets:UIEdgeInsetsMake(0, space, 0, 0)];
        }
            break;
        case HJButtonEdgeInsetsStyleBottom:
        {
            [self setImageEdgeInsets:UIEdgeInsetsMake(self.titleLabel.intrinsicContentSize.height, 0, 0, -self.titleLabel.intrinsicContentSize.width)];
            [self setTitleEdgeInsets:UIEdgeInsetsMake(-self.currentImage.size.height-space, -self.currentImage.size.width, 0, 0)];
        }
            break;
        case HJButtonEdgeInsetsStyleRight:
        {
            [self setImageEdgeInsets:UIEdgeInsetsMake(0,self.titleLabel.intrinsicContentSize.width , 0, -self.titleLabel.intrinsicContentSize.width)];
            [self setTitleEdgeInsets:UIEdgeInsetsMake(0, -self.currentImage.size.width-space, 0, self.currentImage.size.width+space)];
        }
            break;
        default:
            break;
    }
 
}

或者自定义,如果达不到需求(图片与文字宽度大于按钮宽度会压缩)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,786评论 25 709
  • 在iOS10中,如果还使用以前设置UIStatusBar类型或者控制隐藏还是显示的方法,会报警告,方法过期,如下图...
    西门丨不吹雪阅读 203评论 0 0
  • 2.15日读年轻享受生活有感:为什么很多人说“投资有风险”?因为自己的心智没有打开,不能学习更多的东西。清奇小时候...
    王喜庆财商阅读 132评论 0 0
  • //左滑cell时出现什么按钮 - (NSArray*)tableView:(UITableView*)table...
    seventhboy阅读 201评论 0 0