button設置:圖上文字下

1. 一開始我的方案

自定義類繼承UIButton,然后

-(void)layoutSubviews{? ? [superlayoutSubviews];CGFloatmidX =self.frame.size.width/2;CGFloatmidY =self.frame.size.height/2;self.titleLabel.center=CGPointMake(midX, midY +15);self.imageView.center=CGPointMake(midX, midY -10);}

效果嘛,還不錯,現(xiàn)在開發(fā)的項目中一直在用。但是心里總感覺這樣有點旁門左道的樣子,于是乎就有了下邊的另外一種實現(xiàn)。


2. 之后試了好多次得到的結(jié)果

UIButton添加擴展

- (void)verticalImageAndTitle:(CGFloat)spacing{

self.titleLabel.backgroundColor = ?[UIColorgreenColor];

CGSizeimageSize = self.imageView.frame.size;

CGSizetitleSize = self.titleLabel.frame.size;

CGSizetextSize = [self.titleLabel.textsizeWithFont:self.titleLabel.font];

CGSizeframeSize =CGSizeMake(ceilf(textSize.width), ceilf(textSize.height));

if(titleSize.width+0.5< frameSize.width) {? ?

? ? titleSize.width= frameSize.width;? ?

}

CGFloattotalHeight = (imageSize.height+ titleSize.height+ spacing);

self.imageEdgeInsets=UIEdgeInsetsMake(- (totalHeight - imageSize.height),0.0,0.0, - titleSize.width);

self.titleEdgeInsets=UIEdgeInsetsMake(0, - imageSize.width, - (totalHeight - titleSize.height),0);


原文鏈接:http://www.lxweimin.com/p/778aac34926a

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容