说明:方法很简单,但是有个大坑
1:
CGFloat imageW = self.imageView.frame.size.width;
CGFloat imageH = self.imageView.frame.size.height;
CGFloat titleW = self.titleLabel.frame.size.width;
CGFloat titleH = self.titleLabel.frame.size.height;
//图片上文字下
[self setTitleEdgeInsets:UIEdgeInsetsMake(0, -imageW, -imageH - 10, 0.f)];
[self setImageEdgeInsets:UIEdgeInsetsMake(-titleH, 0.f, 0.f,-titleW)];
齐活,妥妥哒,但是如果你先获取的是titleLabel 的witdh 的话,基本上没戏;
2:titleLabel 的frame 是在Imageview 加载出来之后才出现的,具体原因未知
CGFloat titleW = self.titleLabel.frame.size.width;
CGFloat imageH = self.imageView.frame.size.height;
如果这么写的话,基本上是不会成功的;
但是如果你换个顺序
CGFloat imageH = self.imageView.frame.size.height;
CGFloat titleW = self.titleLabel.frame.size.width;
这样却可以设置成功,好神奇有没有。