IOS7 根据字符串求尺寸
来源:互联网 发布:js prop checked 编辑:程序博客网 时间:2024/05/17 23:42
原文:http://blog.csdn.net/itpeng523/article/details/23700385
一、先用xcode创建一个单视图工程
主界面为
为NSString写个求size的分类
#import "NSString+Size.h"
@implementation NSString (Size)
- (CGSize)textSizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode
{
CGSize textSize;
if (CGSizeEqualToSize(size, CGSizeZero))
{
// NSDictionary *attributes = @{NSFontAttributeName:font}
NSDictionary *attributes = [NSDictionarydictionaryWithObject:font forKey:NSFontAttributeName];
// textSize = [self sizeWithAttributes:attributes];
// textSize = []
textSize = [self sizeWithAttributes:attributes];
}
else
{
NSStringDrawingOptions option =NSStringDrawingTruncatesLastVisibleLine |NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading;
//NSStringDrawingTruncatesLastVisibleLine如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。 如果指定了NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略NSStringDrawingUsesFontLeading计算行高时使用行间距。(译者注:字体大小+行间距=行高)
NSDictionary *attributes = [NSDictionarydictionaryWithObject:font forKey:NSFontAttributeName];
CGRect rect = [self boundingRectWithSize:size
options:option
attributes:attributes
context:nil];
textSize = rect.size;
}
return textSize;
}
@end
主代码实现:ViewController.h
#import <UIKit/UIKit.h>
#import "NSString+Size.h"
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *mTextField;
@property (weak, nonatomic) IBOutlet UILabel *outTextField;
- (IBAction)switchKeboardInput:(id)sender;
+(CGSize)sizeOfContent:(NSString *)name;
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(changeKeyBoard:)name:UIKeyboardWillChangeFrameNotification object:nil]; //键盘改变事件
}
- (void)viewWillDisappear:(BOOL)animated
{
}
-(void)changeKeyBoard:(NSNotification *)aNotifacation
{
//求字符串的长度
CGSize textSize = [ViewController sizeOfContent:_mTextField.text];
NSString *str = [NSString stringWithFormat:@"宽度为%.2f,高度为%.2f",textSize.width,textSize.height];
_outTextField.text = str;
}
+ (CGSize)sizeOfContent:(NSString *)name
{
if (name.length == 0) {
return CGSizeMake(0, 0);
}
NSMutableString *string = [NSMutableStringstringWithString:name];
return [string textSizeWithFont:[UIFont systemFontOfSize:15]constrainedToSize:CGSizeMake(100, 1000)lineBreakMode:NSLineBreakByWordWrapping]; //一行宽度最大为 100 高度1000
}
- (IBAction)switchKeboardInput:(id)sender
{
[_mTextField resignFirstResponder];
}
@end
- IOS7 根据字符串求尺寸
- IOS7 根据字符串求尺寸
- iOS7.0后 根据字符串长度计算label的尺寸
- iOS7常用控件尺寸
- ios7 APP icon尺寸
- IOS7 图标尺寸
- ios7 UIScrollView 尺寸问题
- ios7 UIScrollView 尺寸问题
- iOS7计算文本尺寸
- iOS8.0 根据字符串长度计算label的尺寸
- C# 根据名称字符串 求 属性
- IOS7设计师笔记【ios7设计的尺寸】
- iOS7计算文本尺寸新方法
- iOS7计算文本尺寸新方法
- iOS7计算文本尺寸新方法
- iOS7中计算文本尺寸
- iOS7计算文本尺寸新方法
- iOS7 boundingRectWithSize 计算文本尺寸
- Codeforces 455C Civilization(并查集+dfs)
- 都回去后金额我是大家哈高速的话几千万
- hdu1695 dfs+欧拉函数
- Mondrian 表头中文显示(汉化)
- 【iOS】利用block实现回调的示例
- IOS7 根据字符串求尺寸
- Python基础入门部分函数用法
- 安装JAVA开发环境--JDK
- IT从上层到底层是怎样的学习过程
- Apache服务的性能和工作原理
- android service 之二(IntentService)
- Pentaho BI server安装之——Adminstrator console
- C++学习笔记(二): 迭代器
- 研究生生活总结