博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可以简易设置文字内边距的EdgeInsetsLabel
阅读量:6495 次
发布时间:2019-06-24

本文共 2086 字,大约阅读时间需要 6 分钟。

可以简易设置文字内边距的EdgeInsetsLabel

最终效果:

源码:

EdgeInsetsLabel.h 与 EdgeInsetsLabel.m

////  EdgeInsetsLabel.h//  EdgeInsetsLabel////  Created by YouXianMing on 14/10/27.//  Copyright (c) 2014年 YouXianMing. All rights reserved.//#import 
@interface EdgeInsetsLabel : UILabel@property(nonatomic, assign) UIEdgeInsets edgeInsets;@end
////  EdgeInsetsLabel.m//  EdgeInsetsLabel////  Created by YouXianMing on 14/10/27.//  Copyright (c) 2014年 YouXianMing. All rights reserved.//#import "EdgeInsetsLabel.h"@implementation EdgeInsetsLabel- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {    UIEdgeInsets insets = self.edgeInsets;    CGRect rect = [super textRectForBounds:UIEdgeInsetsInsetRect(bounds, 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;}- (void)drawTextInRect:(CGRect)rect {    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.edgeInsets)];}@end

ViewController.m

////  ViewController.m//  SetInsets////  Created by YouXianMing on 14/10/27.//  Copyright (c) 2014年 YouXianMing. All rights reserved.//#import "ViewController.h"#import "EdgeInsetsLabel.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        EdgeInsetsLabel *label    = [[EdgeInsetsLabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];    label.edgeInsets          = UIEdgeInsetsMake(8, 8 + 10, 8, 8 + 10); // 设置内边距    label.font                = [UIFont fontWithName:@"HelveticaNeue-Thin" size:30.f];    label.text                = @"No Zuo No Die";    [label sizeToFit]; // 重新计算尺寸    label.layer.cornerRadius  = label.frame.size.height / 2.f;    label.backgroundColor     = [UIColor blackColor];    label.textColor           = [UIColor redColor];    label.layer.masksToBounds = YES;    label.center              = self.view.center;        [self.view addSubview:label];}@end

核心原理:

 

转载地址:http://encyo.baihongyu.com/

你可能感兴趣的文章
Linux 内核链表
查看>>
git学习------>Git 分支管理最佳实践
查看>>
括号和出栈所有序列问题
查看>>
第一次操刀数据库分表的教训与经验
查看>>
录音声音小
查看>>
Ubuntu 12.04 安装 Chrome浏览器
查看>>
java 反射
查看>>
ORACLE物化视图(物理视图)
查看>>
android 读取json数据(遍历JSONObject和JSONArray)(转)
查看>>
UIScrollView中的手势
查看>>
递归和迭代的差别
查看>>
基于jquery的可拖动div
查看>>
可以简易设置文字内边距的EdgeInsetsLabel
查看>>
[詹兴致矩阵论习题参考解答]习题1.3
查看>>
Android Fragment的使用
查看>>
mysql半同步复制实现
查看>>
沙朗javascript总结一下(一)---基础知识
查看>>
js深入研究之函数内的函数
查看>>
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
python之commands模块
查看>>