IOS开发入门之UIBottom的image的上下左右方向排列实现方法
凌雪 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
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved