上一章当中,我们留了一个小BUG。

其实就是浏览新闻的时候,如果文字内容过长的花,UITextView 会有个下拉框,而最底层的UIScrollView也有个下拉框,那么在使用的时候就会非常的不爽。

而这章呢我们就要解决这样一个问题了

其实并不是很复杂的修改方法

我们只需要将viewDidLoad改成下面这样就可以了

- (void)viewDidLoad
{
GetWebInfo *getwebinfo=[GetWebInfo alloc];
NSString *myparameters=[[NSString alloc] initWithString:[NSString stringWithFormat:@"Method=getSingleNewsbyId&new_id=%@",mynewid]];
getwebinfo.parameters=myparameters;
NSString *webReturnMessage=[getwebinfo dogetWebInfo];
NSData* jsonData=[webReturnMessage dataUsingEncoding:NSUTF8StringEncoding];
NSArray *keys = [NSJSONSerialization
JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:nil];
// NSLog(@"%@",keys);
timelabel.text=[[keys objectAtIndex:]valueForKey:@"time"];
titlelabel.text=[[keys objectAtIndex: ]valueForKey:@"title"];
contenttextview.text=[[keys objectAtIndex: ]valueForKey:@"contents"];
NSInteger i=;
if(haveimage)
{
images=[[[keys objectAtIndex: ]valueForKey:@"images"] componentsSeparatedByString:@","];
for (NSString *singleimage in images) {
NSData *newimage=[Base64AndImageHelp mydataWithBase64EncodedString:singleimage];
UIImage *newjiaban=[[UIImage alloc] initWithData:newimage];
UIImageView *imageView = [[UIImageView alloc] init];
[self.mainscrollview addSubview:imageView];
imageView.frame = CGRectMake( ,*i+,,);//left ,top ,width ,height
imageView.image=newjiaban;
i++;
}
}
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
NSInteger newSizeH;
float fPadding = 16.0; // 8.0px x 2 CGSize constraint = CGSizeMake(contenttextview.contentSize.width - fPadding, CGFLOAT_MAX); CGSize size = [contenttextview.text sizeWithFont: contenttextview.font
constrainedToSize:constraint
lineBreakMode:UILineBreakModeWordWrap];
newSizeH = size.height + 16.0 - ;
contenttextview.frame=CGRectMake( ,*i+,,newSizeH);
mainscrollview.contentSize=CGSizeMake(, +*i+newSizeH);
}
else
{
CGSize size = [[contenttextview text] sizeWithFont:[contenttextview font]];
int length = size.height; // 2. 取出文字的高度
int colomNumber = contenttextview.contentSize.height/length; //3. 计算行数
contenttextview.frame=CGRectMake( ,*i+,,colomNumber*);
mainscrollview.contentSize=CGSizeMake(, +*i+colomNumber*);
} [super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}

首先我们需要判断一下设备的系统版本。

为什么需要判断设备的系统版本呢?

这是因为在IOS7当中UITextView已经不支持contentSize属性了。(也并不是不支持,而是超过长度的话获取过来的结果是相同的。)

接下来我来解释下 修改的部分

首先先判断设备版本

如果是IOS7以下的话呢就先获取TextView的字体样式。

然后再取出字体的高度

最后利用contentSize的高来除以行数。最后再修改下样式就可以了

而对于IOS7以上的话就需要使用其他方法来达到相应的效果了。

具体的就靠大家自己参照代码理解了。

最后再附上一张效果图

IOS开发---菜鸟学习之路--(十一)-使新闻内容自适应高度的更多相关文章

  1. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  2. IOS开发---菜鸟学习之路--(一)

    PS(废话): 看了那么多的博客文章,发现大部分人都一直在强调写技术博客的重要性,索性自己也耐着性子写写看吧. 写博客的重要性之类的说明,我就不做复制黏贴的工作了.因为自己没有写过多少,所也不清楚是不 ...

  3. IOS开发---菜鸟学习之路--(二十三)-直接利用键值对的方式来处理数据的感想

    首先声明,本文纯粹只是做为本人个人新手的理解.文中的想法我知道肯定有很多地方是错的. 但是这就是我作为一个新人的使用方法,对于大牛非常欢迎指导,对于喷子请绕道而行. 由于这是早上跟我学长讨论数据处理时 ...

  4. IOS开发---菜鸟学习之路--(十七)-利用UITableView实现个人信息界面

    首先来看下我们要实现的效果 需要实现这样的效果 然后我们开始动手吧. 首先选择添加一个新的ViewController 然后打开XIB文件,添加一UITableView 并将样式设置为分组 同时将按住 ...

  5. IOS开发---菜鸟学习之路--(二十一)-利用正则表达式解析URL获取其中的参数

    因为项目需要解析URL当中参数的部分,在网上搜索了一下都没有相关的资料. 然后就自己写了一个 其实我就是通过正则表达式来处理URL 进行解析的 好了直接上代码吧 也是非常的简单,大家拷贝过去就可以使用 ...

  6. IOS开发---菜鸟学习之路--(五)-MacBook购买前后感想

    前几天刚入手了一台MACBOOK AIR 13寸 13版的 这几天使用过来个人感觉还是非常不错的. 这几天每天晚上都抱着她玩到十一.二点. 今天晚上突然想起来好久没续写博客了.就连忙开始码字了. 此章 ...

  7. IOS开发---菜鸟学习之路--(四)-登陆界面

    本篇的内容其实大家 参照橘子的那本开发的书的话  上面讲解的是更详细的 一些实现. 我这边唯一的区别就是 做了网络数据的获取 以及 验证成功后 进行界面的跳转.. 第四篇了 本篇主讲登陆模块 首先先放 ...

  8. IOS开发---菜鸟学习之路--(七)-自定义UITableViewCell

    本篇将介绍如何自定义 UITableViewCell 首先选择新建文件 可以直接使用快捷键 COMMAND+n打开新建页面,然后选Objective-C class 然后选择继承之UITableVie ...

  9. IOS开发---菜鸟学习之路--(二)-数据获取

    第二篇了. 本篇要讲的是数据获取. 为什么将数据获取放在第二篇就讲呢? 因为我在看别人教程的时候都是先讲控件的属性,然后怎么用控件开始. 可是毕竟咱们也是有一定开发经验的人..所以很自然就想先知道怎么 ...

随机推荐

  1. ArcGIS for Android 中实现要素绘制时固定MapView

    最近在项目中遇到这么一个情况,在MapView中要求实现绘制点.线.面. 在这里面就会遇到这么一个问题,绘制折线和多边形型时,每点击一个点屏幕就会跟着晃,使用起来很不方便(使用Note2 触控笔),所 ...

  2. Spring MVC的高级配置

    1.文件上传配置 文件上传是项目中常用的一个功能,Spring MVC通过配置一个MultipartResolver来上传文件. 在Spring的控制器中,通过MultipartFile file 来 ...

  3. DB2数据库备份还原

    恢复及备份NC DB2数据库步 一. 安装DB2数据库 解压db2v9.5ins.rar安装,在写此文档时客户一般用的是9.5: 注意不要将db2安装到系统盘: 二. Windows版本 1.数据库备 ...

  4. 初学python,感受和C的不同

    从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是个人都知道有多囫囵吞枣,这也是因为我暂时没有需求拿这个做大型开发,主 ...

  5. 将ts文件合并为mp4命令

    cmd: copy/b D:\*.ts D:\new.ts 参考:http://blog.sina.com.cn/s/blog_66b4f1180102uzxs.html

  6. 【洛谷4424】[HNOI/AHOI2018] 寻宝游戏(位运算思维题)

    点此看题面 大致题意: 给你\(n\)个\(m\)位二进制数.每组询问给你一个\(m\)位二进制数,要求你从\(0\)开始,依次对于这\(n\)个数进行\(and\)或\(or\)操作,问有多少种方案 ...

  7. 【BZOJ3940】[USACO2015 Feb] Censoring (AC自动机的小应用)

    点此看题面 大致题意: 给你一个文本串和\(N\)个模式串,要你将每一个模式串从文本串中删去.(此题是[BZOJ3942][Usaco2015 Feb]Censoring的升级版) \(AC\)自动机 ...

  8. BZOJ 3878: [Ahoi2014]奇怪的计算器

    BZOJ 3878: [Ahoi2014]奇怪的计算器 标签(空格分隔): OI-BZOJ OI-线段树 Time Limit: 10 Sec Memory Limit: 256 MB Descrip ...

  9. python_20_列表

    #1 names=["QiZhiguang","DaiYang","HuZhongtao","ZhangDong"] p ...

  10. cuda科普像素坐标和线性偏移

    cuda科普像素坐标和线性偏移