UIWebView、UITextView 和UILable 设置行间距

01、使用UIWebView调整行距

添加 UIWebView,并对 WebView 应用如下代码:

//下面两行协助 UIWebView 背景透明化,这两属性可以在 xib 中进行设置

webview.backgroundColor = [UIColorclearColor];  //但是这个属性必须用代码设置,光 xib 设置不行

webview.opaque =NO;

 

//这行能在模拟器下明下加快 loadHTMLString 后显示的速度,其实在真机上没有下句也感觉不到加载过程

webview.dataDetectorTypes =UIDataDetectorTypeNone;

 

//下面的 backgroud-color:transparent 结合最前面的两行代码指定的属性就真正使得 WebView 的背景透明了

//而后的 font:16px/18px 就是设置字体大小为 16px, 行间距为 18px,也可用  line-height: 18px 单独设置行间距

//最后的 Custom-Font-Name 就是前面在项目中加上的字体文件所对应的字体名称了

NSString*webviewText = @"<style>body{margin:0;background-color:transparent;font:16px/18px Custom-Font-Name}</style>";

NSString*htmlString = [webviewText stringByAppendingFormat:@"%@", textview.text];

[webview loadHTMLString:htmlString baseURL:nil];//在 WebView 中显示本地的字符串


执行之后显示的就是第一个图中的效果了。有可能出现在 iOS4 下背景未能透明化的问题,是可能,我有碰到过,也许哪里设置的问题。

注意,很重要的一点,上面 iOS4 下背景可能不透明的情况是因为:虽然可以在 xib 中对 UIWebView 设置它的 backgroundColor 为 clearColor,但是 Xcode 似乎不怎么认账,所以必须在代码中用 webview.backgroundColor = [UIColor clearColor]; 设置 UIWebView 的背景才成,opaque 在 xib 还是在代码中设置都行。

另外,也可以用  background-color: rgba(0,0,0,0) 样式,最后一个 0 表示 Alpha 值,即完全透明,甚至是用 background-color:hsla(120,50%,50%,0) 也是可行的。

对于 UIWebView 来说,你能够应用 HTML5 很多特性,所以不要求有很规范的 HTML 格式,像无需写成 <html><head>....... 那样。

尝试了用 @font-face 来使用自定义字体,未能成功,再就是对 UIWebView 的用户交互及滚动条风格调一调,可让它更像是个 UITextView,完全的代替 UITextView 来显示一段文字某些地方有可能仍需作微调。





02、UITextView 和UILable 设置行间距


UITextView 和UILable它本身是没有控制行高的。很多人说用Uiwebview,但我觉得那不好用,要用html布局麻烦,占内存。也有人说drawatpoint,但

发现画中文的时候也很占内存,我就投机取巧一下吧

UILable 跟下面的用法一样的自己改一下

 

[plain]  viewplaincopy
  1. //  DrawAtPoint  
  2. //  
  3. //  Created by xia kejie on 12-5-13.  
  4. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
  5. //  
  6.   
  7. #import "ViewController.h"  
  8. #define LINENUM 20    //每行字数  
  9. #define LINEHEIGHT 30 //行高  
  10. @interface ViewController ()  
  11.   
  12. @end  
  13.   
  14. @implementation ViewController  
  15.   
  16. (void)viewDidLoad  
  17.  
  18.     int begin=0;  
  19.     NSString *partialString;  
  20.      
  21.     [super viewDidLoad];  
  22.     NSString* str=@"东南形胜,三吴都会,钱塘自古繁华。烟柳画桥,风帘翠幕,参差十万人家。云树 绕堤沙,怒涛卷霜雪,天堑无涯。市列珠玑,户盈罗绮,竞豪奢。重湖叠清嘉,有三秋桂子,十里荷花。羌管弄晴,菱歌泛夜,嬉嬉钓叟莲娃。千骑拥高衙,乘醉听箫鼓,吟赏烟霞。异日图将好景,归去凤池夸。云树 绕堤沙,怒涛卷霜雪,天堑无涯。市列珠玑,户盈罗绮,竞豪奢。重湖叠清嘉,有三秋桂子,十里荷花。羌管弄晴,菱歌泛夜,嬉嬉钓叟莲娃。千骑拥高衙,乘醉听箫鼓,吟赏烟霞。异日图将好景,归去凤池夸。";  
  23.       
  24.     int num str.length/LINENUM;  
  25.     NSLog(@"%d",str.length);  
  26.     NSLog(@"%d",num);  
  27.     for (int i=0; i<=num; i++)  
  28.     UITextView* textview=[[UITextView alloc]init];  
  29.     NSLog(@"%d-----",begin);  
  30.       
  31.     if(i==num)  
  32.     partialString=[str substringWithRange:NSMakeRange(begin,str.length%LINENUM)];     
  33.     else  
  34.     partialString=[str substringWithRange:NSMakeRange(begin,LINENUM)];  
  35.       
  36.     textview.backgroundColor=[UIColor clearColor];  
  37.     textview.text=partialString;  
  38.     textview.frame=CGRectMake(0, 30+i*LINEHEIGHT, 300, 30);  
  39.     [self.view addSubview:textview];  
  40.   
  41.     begin+=LINENUM;  
  42.     NSLog(@"%@",partialString);  
  43.          
  44.          
  45.    
  46.     // Do any additional setup after loading the view, typically from nib.  
  47. }






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值