凌雪
2018-10-23
来源 :网络
阅读 1325
评论 0
摘要:本文将带你了解IOS开发入门ios 开发中UIBottom的image的上下左右方向排列实现方法,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门ios 开发中UIBottom的image的上下左右方向排列实现方法,希望本文对大家学IOS有所帮助。
ios 开发中UIBottom的image的上下左右方向排列实现方法
主要代码:继承于UIBottom,主要修改titleEdgeInsets和imageEdgeInsets 属性
CustomizeBtn.h
#import <uikit uikit.h="">
typedef IBInspectable NS_ENUM(NSUInteger, CustomizeBtnImagePosition) {
CustomizeBtnImagePositionTop, // image在上,label在下
CustomizeBtnImagePositionLeft, // image在左,label在右
CustomizeBtnImagePositionBottom, // image在下,label在上
CustomizeBtnImagePositionRight // image在右,label在左
};
IB_DESIGNABLE
@interface CustomizeBtn : UIButton
@property(nonatomic,unsafe_unretained)IBInspectable NSUInteger imagePosition;
@property(nonatomic,unsafe_unretained)IBInspectable NSUInteger space;
@end</uikit>
CustomizeBtn.m
#import "CustomizeBtn.h"
@implementation CustomizeBtn
- (void)drawRect:(CGRect)rect {
[self BtnImagePosition:self.imagePosition imageTitleSpace:self.space];
}
-(void)setImagePosition:(NSUInteger)imagePosition {
_imagePosition = imagePosition;
[self BtnImagePosition:imagePosition imageTitleSpace:self.space];
}
-(void)setSpace:(NSUInteger)space {
_space = space;
[self BtnImagePosition:self.imagePosition imageTitleSpace:space];
}
- (void)BtnImagePosition:(CustomizeBtnImagePosition)style
imageTitleSpace:(CGFloat)space {
CGFloat imageWith = self.imageView.frame.size.width;
CGFloat imageHeight = self.imageView.frame.size.height;
CGFloat labelWidth = 0.0;
CGFloat labelHeight = 0.0;
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
// 由于iOS8中titleLabel的size为0,用下面的这种设置
labelWidth = self.titleLabel.intrinsicContentSize.width;
labelHeight = self.titleLabel.intrinsicContentSize.height;
} else {
labelWidth = self.titleLabel.frame.size.width;
labelHeight = self.titleLabel.frame.size.height;
}
UIEdgeInsets imageEdgeInsets = UIEdgeInsetsZero;
UIEdgeInsets labelEdgeInsets = UIEdgeInsetsZero;
switch (style) {
case CustomizeBtnImagePositionTop:
{
imageEdgeInsets = UIEdgeInsetsMake(-labelHeight-space/2.0, 0, 0, -labelWidth);
labelEdgeInsets = UIEdgeInsetsMake(0, -imageWith, -imageHeight-space/2.0, 0);
}
break;
case CustomizeBtnImagePositionLeft:
{
imageEdgeInsets = UIEdgeInsetsMake(0, -space/2.0, 0, space/2.0);
labelEdgeInsets = UIEdgeInsetsMake(0, space/2.0, 0, -space/2.0);
}
break;
case CustomizeBtnImagePositionBottom:
{
imageEdgeInsets = UIEdgeInsetsMake(0, 0, -labelHeight-space/2.0, -labelWidth);
labelEdgeInsets = UIEdgeInsetsMake(-imageHeight-space/2.0, -imageWith, 0, 0);
}
break;
case CustomizeBtnImagePositionRight:
{
imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth+space/2.0, 0, -labelWidth-space/2.0);
labelEdgeInsets = UIEdgeInsetsMake(0, -imageWith-space/2.0, 0, imageWith+space/2.0);
}
break;
default:
break;
}
self.titleEdgeInsets = labelEdgeInsets;
self.imageEdgeInsets = imageEdgeInsets;
}
@end
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号