博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据文字内容自适应的label && scrollview
阅读量:5806 次
发布时间:2019-06-18

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

hot3.png

////  ViewController.m//  UIScrollview////  Created by Zoujie on 15/5/7.//  Copyright (c) 2015年 Zoujie. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController#define maxWide 1000000- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.#pragma mark text内容        NSString *demoStr = @"1919191919000000+";        [self widthForString:demoStr fontSize:18 andHeight:25];//ios6#pragma step one    NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObject:[UIFont systemFontOfSize:18] forKey:NSFontAttributeName];        CGRect labelRect = [demoStr boundingRectWithSize:CGSizeMake(MAXFLOAT, 20) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];    UILabel *textLabel = [[UILabel alloc]init];    textLabel.text = demoStr;    textLabel.textAlignment = NSTextAlignmentRight;    textLabel.lineBreakMode = NSLineBreakByWordWrapping;    textLabel.backgroundColor = [UIColor whiteColor];    NSLog(@"获取Rect方法宽度%f",labelRect.size.width);    //指定用于显示的区域,scrollview取字体所占的宽度    CGRect rect = CGRectMake(0.0f, 0.0f, labelRect.size.width, labelRect.size.height);        UIScrollView *Second = [[UIScrollView alloc]init];    Second.backgroundColor = [UIColor greenColor];    Second.bounces = NO;    [self.view addSubview:Second];    [Second addSubview:textLabel];    #pragma step two scrollview frame    Second.frame = CGRectMake(0, 200, self.view.frame.size.width-10, 35);//结构        #pragma step three 内容小于等于满屏时    if (rect.size.width<=self.view.frame.size.width-10)    {        [textLabel setFrame:CGRectMake(0, 5,self.view.frame.size.width-10, 25)];        Second.contentSize = CGSizeMake(self.view.frame.size.width-10, 35);    }    else{        [textLabel setFrame:CGRectMake(0, 5, rect.size.width, 25)];        Second.contentSize = CGSizeMake(rect.size.width, 35);#pragma step four 画布偏离值 画布大于屏幕时才需要偏离到屏幕最右方        [Second setContentOffset:CGPointMake(rect.size.width-self.view.frame.size.width+10,0) animated:YES];    }        NSLog(@"画布大小 width ===== %f",rect.size.width);    NSLog(@"==========================label  width%f========================",textLabel.frame.size.width);    NSLog(@"==========================label  x====%f,画布的x=====%f",textLabel.frame.origin.x,Second.contentSize.width);}#pragma ios7之前的方法 弃用-(float) widthForString:(NSString *)value fontSize:(float)fontSize andHeight:(float)height{    CGSize sizeToFit = [value sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:CGSizeMake(CGFLOAT_MAX, height) lineBreakMode:NSLineBreakByWordWrapping];//此处的换行类型(lineBreakMode)可根据自己的实际情况进行设置    NSLog(@"size======width %f",sizeToFit.width);    return sizeToFit.width;}#pragma 动态设置scrollview+label显示表达式#pragma  1.准确获取文字宽度#pragma  2.scrollview宽度,满屏-10#pragma  3.label添加在画布的位置,(1)画布小于等于屏幕,(2)画布大于屏幕,需设置偏离值@end

 

 

转载于:https://my.oschina.net/u/2319073/blog/532744

你可能感兴趣的文章
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>
MYSQL数据库间同步数据
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
行为型模式:观察者模式
查看>>
让前端小姐姐愉快地开发表单
查看>>
Dubbo笔记(四)
查看>>
Web前端JQuery入门实战案例
查看>>
Android开发教程 - 使用Data Binding(一) 介绍
查看>>
java B2B2C Springboot电子商城系统- SSO单点登录之OAuth2.0 登出流程(3)
查看>>
12月26日云栖精选夜读:CDN新品发布:阿里云SCDN安全加速开放公测
查看>>
USB 通信原理
查看>>