前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS XibKits-- Label内边距设置

iOS XibKits-- Label内边距设置

作者头像
星宇大前端
发布于 2020-01-13 06:50:15
发布于 2020-01-13 06:50:15
1.8K00
代码可运行
举报
文章被收录于专栏:大宇笔记大宇笔记
运行总次数:0
代码可运行

在使用Xib开发的时候,除了设置Label的外边距约束的时候,还会想设置下内边距即前端的padding,但Xib设置Label的padding并不直观,下面添加几个属性让Xib设置更简单。

目的


让XIb开发时更直观的设置Label的padding。

策略


  1. 使用@IBInspectable 暴露属性给Xib设置
  2. 修改Label边距
  3. 使用@IBDesignable 在Xib显示更改边距的Label

行动(代码)


代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@IBDesignable
class RadiusLabel: UILabel{

    private var padding = UIEdgeInsets.zero
    @IBInspectable
    var paddingLeft: CGFloat {
        get { return padding.left }
        set { padding.left = newValue }
    }
   
    @IBInspectable
    var paddingRight: CGFloat {
        get { return padding.right }
        set { padding.right = newValue }
    }
    
    @IBInspectable
    var paddingTop: CGFloat {
        get { return padding.top }
        set { padding.top = newValue }
    }
    
    @IBInspectable
    var paddingBottom: CGFloat {
        get { return padding.bottom }
        set { padding.bottom = newValue }
    }
    
    //重新绘制文本
    override func drawText(in rect: CGRect) {
        super.drawText(in: rect.inset(by: padding))
    }
    
    //重新text文字框大小
    override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
        let insets = self.padding
        var rect = super.textRect(forBounds:bounds.inset(by: insets), limitedToNumberOfLines: numberOfLines)
        rect.origin.x -= insets.left
        rect.origin.y -= insets.top
        rect.size.width += (insets.left + insets.right)
        rect.size.height += (insets.top + insets.bottom)
        return rect
    }
}

使用


在Xib属性看到上下左右padding属性修改即可。

XibKits 源码地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java Socket 编程原理及教程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端各一个。
哲洛不闹
2018/09/14
8450
Java Socket 编程原理及教程
Druid 集群方式部署 —— 操作系统和发行版本
你的操作系统包管理工具应该能够帮助你在操作系统中安装 Java。 如果你使用的是基于 Ubuntu 的操作系统,但是这个操作系统没有提供的最新版本的 Java 的话,请尝试访问 WebUpd8 页面中的内容: packages for those OSes 。
HoneyMoose
2021/08/06
5190
Druid 集群方式部署 —— 操作系统和发行版本
世界上流传最广的财务数据模型你知道吗
很多财务小伙伴在使用 Power BI,但缺乏好的案例。今天就来分享一个你万万想不到的,这正印证了一句话:
BI佐罗
2021/12/21
7470
世界上流传最广的财务数据模型你知道吗
安装 Druid 安装的时候提示 JAVA 版本的问题
这个其实不是问题,出现上面提示的原因就是 Druid 在安装的时候需要校验 Java 的版本。
HoneyMoose
2021/07/29
5630
安装 Druid 安装的时候提示 JAVA 版本的问题
北美一工作搜索引擎公司技术岗面经
公司名称就不说了,基本上很多人都会用到的一个在北美地区比较流行找工作时候使用的搜索引擎。
HoneyMoose
2021/04/29
3120
北美一工作搜索引擎公司技术岗面经
java安全编码指南之:输入校验
为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验。
程序那些事
2020/09/24
1.1K0
打造个人品牌 & 跳出舒适圈——高科技人才在跨国大公司的生存之道(三)
我们知道像微软这样的大公司有几十万人的体量、加上它的供应商可能会有更多,而你在里面是一颗小螺丝钉。一颗小螺丝钉怎样让别人看到呢?
叶锦鲤
2022/04/15
6060
打造个人品牌 & 跳出舒适圈——高科技人才在跨国大公司的生存之道(三)
LINUX下tar.bz2包的安装方法
声明:个人觉得文章不错,所以转载过来分享以及自己收藏,只是原出处已经无法查明,只能附上我见文章的地址:
全栈程序员站长
2022/09/06
4.1K0
大数据面试题、经验分享及新手问答整理
原文地址:http://www.aboutyun.com/thread-9581-1-1.html **笔试类型: ** 1、 java基础类: 2、 linux基础: **面试问答: **1、讲项目经验: 问的很细,给纸,笔,让画公司hadoop的项目架构,说几条业务数据,然后经过平台后,出来成什么样子; 2、java方面: io输入输出流里有哪些常用的类,还有webService,线程相关的知识; 3、linux: 问到jps命令,kill命令,问awk,sed是干什么用的、还有hadoo
Albert陈凯
2018/04/04
1.3K0
大数据面试题、经验分享及新手问答整理
饶军:Apache Kafka的过去,现在,和未来
大家好,我大概简单的介绍一下,我叫饶军,我是硅谷的初创公司Confluent的联合创始人之一,我们公司的三个创始人都是在最开始在领这个公司做kafka开发出身的。我们公司是2014年成立的,成立的宗旨想把公司做成一个帮助各种各样企业做基于kafka之上的数据流的事情。
腾讯云开发者社区技术沙龙
2018/05/02
2.4K4
Java编程常见问题汇总
:网上已经有很多类似的文章,但我依然要再造一次“轮子”,因为多少有些不同的心得。 人生总有目标和追求 不管是谁,活着总是有方向和追求的,差别可能是有些人“高尚”一些,有些人“低俗”一些,有些人对自己的
用户1667431
2018/04/18
6970
Java编程常见问题汇总
Apache Kylin在美团数十亿数据OLAP场景下的实践
本文根据2016年4月北京Apache Kylin Meetup上的分享讲稿整理,略有删节。
高广超
2018/12/12
1K0
【大咖说】大数据是一种全新的材料,不是另外一种高科技
大数据是一种全新的材料,它不是另外一种高科技,只要找到了合适的方式使用它,它在哪里都可以使用。如果把大数据当成是一种材料的话,你会发现,大数据带来的问题是全方位的。它不是哪一种具体的技术,让你能看到它的功能,让你有办法针对性地管理。所以一定要把它当做一种新材料,从本质上,从体系上来思考大数据。大数据时代,最重要的是关联。
钱塘数据
2018/03/02
1.2K0
【大咖说】大数据是一种全新的材料,不是另外一种高科技
经验 | Web开发野蛮生长的这17年
作者|myvin 译文 | http://zcfy.cc/article/i-x27-ve-been-a-web-developer-for-17-years-and-this-is-what-i-l
用户1097444
2022/06/29
2190
经验 | Web开发野蛮生长的这17年
张小龙微信公开课演讲实录
在2019微信公开课Pro的 “微信之夜” 环节,腾讯公司高级执行副总裁、微信事业群总裁张小龙发表了演讲,关于微信的设计原则、历史以及初心。
章为忠学架构
2019/01/23
7370
我来告诉你,一个草根程序员如何进入BAT
本文将从心态、学习和素养三个方面手把手的告诉你,LZ作为一个非科班毕业,出身于三流大学的草根,是如何凭借自己的努力,进入到国内一流互联网公司的。 心态 看到这个标题,有的同学可能会说,“LZ,你不是要告诉我们如何进入BAT吗?怎么一上来就写心态?” 没错,LZ第一个要说的,就是心态! 原因很简单,文章下面即将提到的学习内容,如果你没有一个好的心态,是不可能进行下去的。所以,先过了心态这一关,再来谈别的吧,否则你肯定会死在半路上的。 说起来,很多群里的新人都爱问LZ,“你是怎么学习的?为什么我学不进去呢?为什
纯洁的微笑
2018/07/20
6300
原创 Paper | Windows 与 Java 环境下的 Redis 利用分析
在最近的一次攻防演练中,遇到了两个未授权访问的 Redis 实例。起初以为可以直接利用,但后来发现竟然是Windows + Java (Tomcat)。因为网上没有看到相关的利用文章,所以在经过摸索,成功解决之后决定简单写一写。
Seebug漏洞平台
2024/05/29
4490
原创 Paper | Windows 与 Java 环境下的 Redis 利用分析
我太难了!Reddit网友吐槽:从PyTorch转投TensorFlow后,没人搭理我的问题
仅在 2019 年上半年,ArXiv 论文中 PyTorch 的引用量增长了 194%;PyTorch 平台的贡献者数量比去年增长了 50% 以上,达到近 1200 人。
新智元
2019/12/05
1.1K0
开源安全的危机在于太相信 GitHub?——专访Apache之父&OpenSSF基金会总经理Brain Behlendorf
在开源开发者心中, Apache 与Linux 的意义不言而喻。开源能够发展至今,离不开众多非营利开源软件组织的帮助,而它们便是这些组织中的佼佼者。时至今日,早年间由 Brian Behlendorf 带领程序员们重写开源程序 NCSA HTTPd 而成的 Apache HTTP Server 仍是世界使用第一的网页服务器。这个最初被戏称为“补丁服务器”的存在,成就了 Web 服务器的传奇,也让 Brian Behlendorf 获得了 “Apache之父” 的尊称。
Dlimeng
2023/06/30
1980
开源安全的危机在于太相信 GitHub?——专访Apache之父&OpenSSF基金会总经理Brain Behlendorf
有赞白鸦内部培训全公开:企业服务类产品的底层逻辑和有赞产品设计原则
 作者 : 白鸦 ---- 有赞产品设计原则 写在前面 作为一个产品团队,我们最需要的永远都是懂用户懂需求,并保持不断的创新力。有赞希望每个产品人在这里都能足够发挥自己的能量,为客户创造价值,并获取价值。 于是,我们需要一个大家共同理解、遵循、迭代的《产品设计原则》,从而保障我们可以在不偏离的情况下肆意挥洒、充分创新。 原则概要 有赞的《产品设计原则》,根据客户需求、有赞的使命和愿景、当前生态环境,以及我们所处的发展阶段拟定,它是每个有赞产品在设计过程中都要遵守的基本原则。我们还会定期对其进行优化和
腾讯SaaS加速器
2020/06/09
4260
推荐阅读
相关推荐
Java Socket 编程原理及教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验