iOS 编程 计算字符串文字宽度
2015-07-07 11:20
489 查看
//
// ViewController.m
// tableview复习
//
// Created by tianshangrenjian on 15/7/7.
// Copyright © 2015年 tianshangrenjian. All rights reserved.
//
#import "ViewController.h"
@interface
ViewController ()
@property (weak,
nonatomic) IBOutlet
UILabel *lbInfo;
@property (weak,
nonatomic) IBOutlet
UIView *viewInfo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)touchesBegan:(nonnull
NSSet<UITouch *> *)touches withEvent:(nullable
UIEvent *)event
{
NSString *str=@"
开源界总是有许多有趣的东东,这三个合起来就是一个完整的XMPP IM
实现。包括服务器端——Openfire,,XMPP
传输协议的实现——Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用)。三者都是基于Java
语言的实现。";
CGSize size=CGSizeMake(270,
MAXFLOAT);
UIFont *font=[UIFont
systemFontOfSize:18];
NSDictionary *attrs=@{NSFontAttributeName:font};
CGSize s=[str
boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading
attributes:attrs context:nil].size;
CGSize s1=[str sizeWithAttributes:attrs];
NSLog(@"%g %g",s.height,s.width);
NSLog(@"s1 :%g %g",s1.height,s1.width);
self.viewInfo.frame=CGRectMake(0 ,
0, s.width+20, s.height+38);
[self.viewInfo
setNeedsDisplay];
self.lbInfo.frame=CGRectMake(15,5,
270, s.height);
self.lbInfo.lineBreakMode=NSLineBreakByWordWrapping;
self.lbInfo.font=font;
self.lbInfo.numberOfLines=0;
self.lbInfo.text=str;
}
- (void)didReceiveMemoryWarning {
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
// ViewController.m
// tableview复习
//
// Created by tianshangrenjian on 15/7/7.
// Copyright © 2015年 tianshangrenjian. All rights reserved.
//
#import "ViewController.h"
@interface
ViewController ()
@property (weak,
nonatomic) IBOutlet
UILabel *lbInfo;
@property (weak,
nonatomic) IBOutlet
UIView *viewInfo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)touchesBegan:(nonnull
NSSet<UITouch *> *)touches withEvent:(nullable
UIEvent *)event
{
NSString *str=@"
开源界总是有许多有趣的东东,这三个合起来就是一个完整的XMPP IM
实现。包括服务器端——Openfire,,XMPP
传输协议的实现——Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用)。三者都是基于Java
语言的实现。";
CGSize size=CGSizeMake(270,
MAXFLOAT);
UIFont *font=[UIFont
systemFontOfSize:18];
NSDictionary *attrs=@{NSFontAttributeName:font};
CGSize s=[str
boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading
attributes:attrs context:nil].size;
CGSize s1=[str sizeWithAttributes:attrs];
NSLog(@"%g %g",s.height,s.width);
NSLog(@"s1 :%g %g",s1.height,s1.width);
self.viewInfo.frame=CGRectMake(0 ,
0, s.width+20, s.height+38);
[self.viewInfo
setNeedsDisplay];
self.lbInfo.frame=CGRectMake(15,5,
270, s.height);
self.lbInfo.lineBreakMode=NSLineBreakByWordWrapping;
self.lbInfo.font=font;
self.lbInfo.numberOfLines=0;
self.lbInfo.text=str;
}
- (void)didReceiveMemoryWarning {
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
相关文章推荐
- 用CocoaPods做iOS程序的依赖管理
- iOS AutoLayout 及SizeClass 自动布局(一)
- ios学习笔记:ios如何选择delegate ,notification,kvo
- iOS8 Xcode6的新特性
- ios 上传文件
- iOS开发自定义时间选取器
- Xcode 5 + iOS 7免证书(iDP)真机调试与生成IPA全攻略
- 跨平台移动开发实战(二)------IOS开发环境搭建
- XCode6的iOS Simulator 文件保存位置
- ios --- 动态获取键盘高度
- iOS动画入门一
- ios --- 动态获取键盘高度
- ios学习笔记:iosGCD的使用
- 【iOS开发系列】启动页面广告(可实现动态加载)
- iOS下划线/虚线/删除线等等
- iOS开发之多表视图滑动切换示例(仿"头条"客户端)---优化篇
- iOS 自定义Set方法,注意点
- iOS下的2D仿射变换机制(CGAffineTransform相关)
- 解决interfaceOrientation is deprecated:first deprecated in ios8.0
- IOS - 横线和竖线(分割线)