IOS UILabel的一些使用小技巧
2024-09-21 11:00:35
1. 你在iOS6的需要NSLineBreakByWordWrapping 为了您的代码试试这个:
NSString *string = @"bla";
CGSize s = [string sizeWithFont:[UIFont systemFontOfSize:20]
constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, CGFLOAT_MAX) // - 40 For cell padding
lineBreakMode:NSLineBreakByWordWrapping];
的标签上,例如,将
[label setLineBreakMode:NSLineBreakByWordWrapping];
而不是
label.lineBreakMode = UILineBreakModeWordWrap;
2. 为了保持你可以创建一个宏,如下:
#ifdef __IPHONE_6_0
typedef enum {
# define LINE_BREAK_WORD_WRAP NSLineBreakByWordWrapping
#else
# define LINE_BREAK_WORD_WRAP UILineBreakModeWordWrap
#endif
UILineBreakModeWordWrap = 0,
UILineBreakModeCharacterWrap,
UILineBreakModeClip,
UILineBreakModeHeadTruncation,
UILineBreakModeTailTruncation,
UILineBreakModeMiddleTruncation,
} UILineBreakMode; UILineBreakModeWordWrap = 0,
以单词为单位换行,以单位为单位截断。
UILineBreakModeCharacterWrap,
以字符为单位换行,以字符为单位截断。
UILineBreakModeClip,
以单词为单位换行。以字符为单位截断。
UILineBreakModeHeadTruncation,
以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。
UILineBreakModeTailTruncation,
以单词为单位换行。无论是单行还是多行,都是末尾有省略号。
UILineBreakModeMiddleTruncation,
以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。
NSLineBreakByWordWrapping = 0,
//以空格为边界,保留单词
NSLineBreakByCharWrapping,
//保留整个字符
NSLineBreakByClipping,
//简单剪裁,到边界为止
NSLineBreakByTruncatingHead,
//按照"……文字"显示
NSLineBreakByTruncatingTail,
//按照"文字……文字"显示
NSLineBreakByTruncatingMiddle
//按照"文字……"显示
例如:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];//后面还会重新设置其size。
[label setNumberOfLines:0];
NSString *s = @"string......";
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(320,2000);
CGSize labelsize = [s sizeWithFont:font constrainedToSize:sizelineBreakMode:UILineBreakModeWordWrap];
[label setFrame:CGRectMake(0, 0, labelsize.width, labelsize.height)];
[label setNumberOfLines:0];
NSString *s = @"string......";
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(320,2000);
CGSize labelsize = [s sizeWithFont:font constrainedToSize:sizelineBreakMode:UILineBreakModeWordWrap];
[label setFrame:CGRectMake(0, 0, labelsize.width, labelsize.height)];
[self.view addSubView:label];
最新文章
- label中设置某些指定的字体的属性设置(Color,Size,FontColor)
- 【学习笔记】Servlet的配置
- git使用手册
- CF2.D 并查集+背包
- Java 读写XML
- POJ3187Backward Digit Sums[杨辉三角]
- winform版简易http服务器
- c - 水仙花数.
- 合理的keyword密度散布与黑帽SEO之躲藏文本
- 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)
- android平台中,EventBus研究学习
- (step6.3.2)hdu 1068(Girls and Boys——二分图的最大独立集)
- 深入了解mysql它BDB系列(1)---BDB基础知识
- [USACO07NOV]电话线Telephone Wire
- Ascall 码特殊字符——去除从windows上传文件的^M
- LR回放https协议脚本失败: 错误 -27778: 在尝试与主机“www.baidu.com”connect 时发生 SSL 协议错误
- C10K
- [HDFS_1] HDFS 的概念和特性
- QUIC:基于udp的传输新技术
- POJ 1088 滑雪(记忆化搜索+dp)