Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android11 Launcher3实现去掉抽屉改为单层
之前在Android12 Rom定制的时候实现过不去掉抽屉显示所有应用列表,今天来讲解下在Android11时实现去掉抽屉显示在桌面所有应用列表,这里Android9和11的系统源码都是不一样的,所以改动有所区别,本文先讲解Android11的修改方式.
用户2195279
2025/06/12
2613
Android11 Launcher3实现去掉抽屉改为单层
知识图谱可视化前奏之d3.js
0.说在前面1.d3.js初识2.绘制完整的柱形图3.让图表动起来4.浅析Update、Enter、Exit5.交互式操作6.作者的话
公众号guangcity
2019/09/20
13.6K0
知识图谱可视化前奏之d3.js
RecyclerView源码解析(二)LinearLayoutManager绘制篇
上一篇介绍了RecyclerView的绘制框架,了解到RecyclerView及其子view的具体绘制工作是通过具体的LayoutManager中的onLayoutChildren和setMeasuredDimension实现的。
好好学习吧
2021/11/25
1.4K0
(八十)c#Winform自定义控件-分割线标签
GitHub:https://github.com/kwwwvagaa/NetWinformControl
冰封一夏
2019/10/09
1.1K0
(八十)c#Winform自定义控件-分割线标签
iOS中Cell约束--使用xib实现多label的自动约束--高度随内容自适应
made in 小蠢驴的配图        说起iOS开发,很多人的印象就是-弄一个tableView,把数据全丢到上面展示,听起来好像很粗糙,不过仔细一想,确实展示数据内容的,用的tableView是最多的了吧,说到这里,今天的男一号-tableViewCell就要登场了。       本文的主题是--tableViewCell的高度自适应,计算cell高度的方法确实有好几种,因为做cell的时候,比较简单的界面我都是直接拉xib,手动连接约束比较省事,所以今天就来探索一波-- 使用xib实现cell高度
小蠢驴打代码
2018/05/24
3.8K0
Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局
简介 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstraints. 最新示例: 点击下载 项目简议: 如果再看到关于纯代码,xib或storyboa
ios122
2018/01/02
2.2K0
教你玩转 Android RecyclerView:深入解析 RecyclerView.ItemDecoration类(含实例讲解)
注意点1:Itemdecoration的onDraw()绘制会先于ItemView的onDraw()绘制,所以如果在Itemdecoration的onDraw()中绘制的内容在ItemView边界内,就会被ItemView遮挡住。如下图:
Carson.Ho
2019/02/22
2.1K0
New UWP Community Toolkit - Staggered panel
概述 前面 New UWP Community Toolkit 文章中,我们对 2.2.0 版本的重要更新做了简单回顾,其中简单介绍了 Staggered panel,本篇我们结合代码详细讲解  St
Shao Meng
2018/04/28
1.2K0
New UWP Community Toolkit - Staggered panel
css3的一些属性--内边距
padding 在一个声明中设置所有内边距属性。 padding-bottom 设置元素的下内边距。 padding-left 设置元素的左内边距。 padding-right 设置元素的右内边距。 padding-top 设置元素的上内边距。 padding 简写属性:设置所有内边距属性。 padding:10px 5px 15px 20px; 上内边距是 10px 右内边距是 5px 下内边距是 15px 左内边距是 20px 顺时针转; padding:10px 5px 15px; 上内边
wust小吴
2019/10/31
6980
《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3
第1章 Interface Bundle 概要 ---- Bundle 一种标准化的层次结构,保存了可执行代码及代码所需要的资源。 nib Next Interface Builder Interface Builder 的优点 开发和维护效率高 减少大量的 UI 代码和“胶水代码” 适配变得十分简单 IB 也可以做一些非 UI 的事情 利用 IB 学习控件可以达到事半功倍的效果 Interface Builder 的缺点 IB 的执行效率没有纯代码高 使用 IB 开发的过程中容易出现一些小问题 有一定的学
iOSDevLog
2018/05/17
2.8K0
android gridview几个重要属性(android:listSelector自带内部padding分析)
该文章讲述了android GridView中列表项被点击后,列表项中图片的缩放和居中显示问题。介绍了三种设置图片缩放和居中显示的方式,以及自定义列表项中图片的Uri的来源。同时介绍了如何设置列表项的按下效果,以及如何解决系统默认的listSelector导致的padding问题。
用户1155943
2018/01/04
1.2K0
D3.js-柱形图
data()的工作过程: data()能将数组各项分别绑定到选择集的各元素上,并且能指定绑定的规则。当数组长度与元素数量不一致时,data()也能够处理。当数组长度大于元素数量时,为多余数据预留元素位置,以便将来插入新元素;当数组长度小于元素数量时,能够获取多余元素的位置,以便将来删除。 在D3中,根据数组长度和元素数量的关系,分别把各种情况归纳如下:
奋飛
2019/08/15
1.6K0
百思不得姐数据挖掘第二篇
首先进入的是启动的界面,我们已经在上一篇做好了。第一次启动之后会出现一个宣传的视频,是下面的界面。
君赏
2018/09/07
6630
【iOS】瀑布流的实现
Simulator Screen Shot - iPhone 8 - 2020-01-16 at 17.32.16.png
MapleYe
2020/03/28
2.2K0
iOS界面布局的核心以及TangramKit介绍
TangramKit是iOS系统下用Swift编写的第三方界面布局框架。他集成了iOS的AutoLayout和SizeClass以及Android的五大容器布局体系以及HTML/CSS中的float和flex-box的布局功能和思想,目的是为iOS开发人员提供一套功能强大、多屏幕灵活适配、简单易用的UI布局解决方案。Tangram的中文即七巧板的意思,取名的寓意表明这个布局库可以非常灵巧和简单的解决各种复杂界面布局问题。他的同胞框架:MyLayout是一套用objective-C实现的界面布局框架。二者的主体思想相同,实现原理则是通过扩展UIView的属性,以及重载layoutSubviews方法来完成界面布局,只不过在一些语法和属性设置上略有一些差异。可以这么说TangramKit是MyLayout布局库的一个升级版本。大家可以通过访问下面的github站点去下载最新的版本:
欧阳大哥2013
2018/08/22
2.4K0
iOS界面布局的核心以及TangramKit介绍
iOS Charts实现非连续折线图
今天看了一篇文章,Charts实现非连续折线图。做一个标记可能以后会用到 效果如下:
赵哥窟
2018/12/05
2K0
iOS Charts实现非连续折线图
D3比例尺与坐标轴
例如[0, 1]对应到[0, 300],当输入0.5时,输出150。或者将[0, 1, 2]对应到["red", "green", "blue"],当输入2时,输出blue。
前端_AWhile
2020/05/18
3.2K0
手把手带你撸一个网易云音乐首页(三)
Hello, 大家好,今天准备和大家继续分享如何利用 Swift 来实现一个网易云音乐的首页;上俩篇文章文章发布以后,我收获了不少小伙伴的关注与点赞,同时也得到了一些非常有用的建议,在这里再次感谢大家的认可, 你们的鼓励与建议是我技术输出路上最大的动力。
HelloWorld杰少
2022/08/04
2.7K0
手把手带你撸一个网易云音乐首页(三)
iOS 关于Interface Building 的一些小技巧
## 1. UIStackView StackView 是iOS9以后才有的,主要解决了组件排列布局复杂的问题,高效快速。
星宇大前端
2020/02/13
2.2K0
iOS UILabe及UIFont用法总结 原
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
珲少
2018/08/15
1.1K0
推荐阅读
相关推荐
Android11 Launcher3实现去掉抽屉改为单层
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档