UILabel实现自适应宽高需要注意的地方(二)
- UILabel “上期” 距离屏幕最左边 有35px
- UILabel “下期” 距离屏幕最右边 有35px
- 进行中文字在UIlabel 中间
- “上期"距离左边35,设置“上期”的X坐标为35即可。设置“上期”的Y坐标为整个头部(红色View)的中心位置即可,通过红色View的Frame高度 来得到他的中心轴的坐标。
- “下期”距离右边35,这个就无法通过直接设置35的距离来保持和右边边界距离刚好为35,要知道“下期”这个UIlabel的宽度,设置“下期”的X坐标为UIlabel“下期”的宽度 + 35px 即可。UILabel宽度如何获取?
{
if (nil == self.text || [@“" isEqualToString:self.text]) {
return CGSizeZero;
}
CGRect contentFrame = [self.textboundingRectWithSize:CGSizeMake(width, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
attributes:@{NSFontAttributeName:self.font}
context:nil];
return CGSizeMake(ceil(contentFrame.size.width + 0.5), ceil(contentFrame.size.height + 0.5));
}
- (CGSize)contentSizeForWidthUsesDeviceMetrics:(CGFloat)width
{
CGRect contentFrame = [self.textboundingRectWithSize:CGSizeMake(width, MAXFLOAT)
options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesDeviceMetrics
attributes:@{NSFontAttributeName:self.font}
context:nil];
return CGSizeMake(ceil(contentFrame.size.width + 0.5), ceil(contentFrame.size.height + 0.5));
}
- (CGSize)contentSize
{
CGFloat screenWidth = [[UIScreenmainScreen] bounds].size.width;
return [self contentSizeForWidth:screenWidth];
}
- (BOOL)isTruncated
{
CGSize size = [self.textboundingRectWithSize:CGSizeMake(self.bounds.size.width, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:self.font}
context:nil].size;
return (size.height > self.frame.size.height);
}
_topView.backgroundColor = NF_Color_C19;
_topViewBigLabel = [[UILabelalloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
_topViewBigLabel.font = [UIFont systemFontOfSize:Near_Final_Font_T4];
_topViewBigLabel.textColor = NF_Color_C1;
_topViewBigLabel.text = @"进行中";
[_topViewBigLabelsizeToFit];
_topViewBigLabel.center = CGPointMake(_topView.bounds.size.width/2,_topView.bounds.size.height/2);
[self.view addSubview:_topView];
[self.view addSubview:_topViewBigLabel];
_topViewleftLabel = [[UILabelalloc] init];
_topViewleftLabel.font = [UIFont systemFontOfSize:Near_Final_Font_T9];
_topViewleftLabel.textColor = NF_Color_C1;
_topViewleftLabel.text = @"上期";
_topViewleftLabel.frame = CGRectMake(35, 0, 0, 0);
[_topViewleftLabelsizeToFit];
_topViewleftLabel.centerY = _topView.bounds.size.height/2;
[_topView addSubview:_topViewleftLabel];
_topViewrightLabel = [[UILabelalloc] init];
_topViewrightLabel.font = [UIFont systemFontOfSize:Near_Final_Font_T9];
_topViewrightLabel.textColor = NF_Color_C1;
_topViewrightLabel.text = @"下期";
_topViewrightLabel.frame = CGRectMake(SCREEN_WIDTH-_topViewrightLabel.contentSize.width-35, 0, 0, 0);
[_topViewrightLabelsizeToFit];
_topViewrightLabel.centerY = _topView.bounds.size.height/2;
[_topView addSubview:_topViewrightLabel];
UILabel实现自适应宽高需要注意的地方(二)的更多相关文章
- UILabel实现自适应宽高需要注意的地方(三)
一.需求图如下所示 UILabel 的高度自适应 UILabel中的段落间距可设置 图片效果如下: 调整段落适应长宽高方式: 需求: 保证"游戏玩法 ...
- UILabel实现自适应宽高需要注意的地方
需求如下: 需要显示2行文字,宽度为 SCREEN_Width - 40 高度为两行文本的自适应高度 需要在此UILabel 下面添加imageView , 因此UIlabel 的高度需要准确,不 ...
- 小程 序swiper自适应宽高
https://blog.csdn.net/qq_31604363/article/details/73715944 小程 序swiper自适应宽高 小程 序swiper自适应宽高
- OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成
首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--O ...
- iOS - web自适应宽高(预设置的大小)
//web自适应宽高 -(void)webViewDidFinishLoad:(UIWebView *)webView { NSLog(@"wessd"); [ webView s ...
- iview Carousel 轮播图自适应宽高;iview 轮播图 图片重叠问题;iview tabs 高度互相影响问题;vue this问题;
最终效果图: 一.轮播图中图片自适应宽高: <Carousel loop v-bind:height="imgHeight+'px'" v-model="caro ...
- UILabel 自适应宽高
#import <UIKit/UIKit.h> @interface UILabel (UILabel_LabelHeighAndWidth) + (CGFloat)getHeightBy ...
- js和php计算图片自适应宽高算法实现
js Code: <script> $width = $(imgobj).width(); //图原始宽 $newheight = $(imgobj).height(); //图原始高 $ ...
- css background-image 自适应宽高——转载
就是这么简单的一句话,设置背景图,并让它100%的适应导航栏宽高,并设置不重复,大小100%就OK了 .zjhn-nav li.active a{ background-image:url(../im ...
随机推荐
- 手机预览微信小程序
1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅 ...
- lucene 7.x 分词 TokenStream的使用及源码分析
一.使用步骤 //将一个字符串创建成token流,第一个参数---fiedName,是一种标志性参数,可以写空字符串,不建议用null,因为null对于IKAnalyzer会包错 TokenStrea ...
- linux系统下信号具体解释2
信号是UNIX 系统所使用的进程通信方法中,最古老的一种.信号不但能从内核发往一个进程,也能从一个进程发往还有一个进程.比如,用户在后台启动了一个要运行较长时间的程序,假设想中断其运行,能够用kill ...
- jQuery memory&unique&stopOnfalse
memory:保持以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred). 回调函数是从异步队列Deferred分离出来的,所以很多的接口设计都是为了契合De ...
- WPF的两棵树与绑定
原文:WPF的两棵树与绑定 先建立测试基类 public class VisualPanel : FrameworkElement { protected VisualCollection Chi ...
- Win7 32bit下一个hadoop2.5.1源代码编译平台的搭建各种错误遇到
从小白在安装hadoop困难和错误时遇到说起,同时,我们也希望能得到上帝的指示. 首先hadoop更新速度非常快,最新的是hadoop2.5.1,因此就介绍下在安装2.5.1时遇到的各种困难. 假设直 ...
- redis支持哪些数据类型
虽然redis的key和value之支持string和byte[],但是仍可以以string的形式保存其他格式,甚至是图片. 1)String: 用set(key,value),get(key) 2) ...
- PHP正则表达式入门教程[转]
思维导图 点击下图,可以看具体内容! 介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,p ...
- WPF 关于圆角的制作
原文:WPF 关于圆角的制作 1.使用Boder(一般情况): 设置CornerRadius属性 <Border x:Name="border" CornerRadius=& ...
- Linux 获得了其首款基于 RISC-V 的多核开源处理器
去年,硅谷创业公司 SiFive 发布了首款开源 SoC(片上系统 System on a Chip),命名为 Freeform Everywhere 310.现在,该公司从嵌入式系统领先一步,发布了 ...