最近有遇到过sizeToFit的方法,比较好奇,所以查了点资料

  在官方文档中

  - (void)sizeToFit;

   // calls sizeThatFits: with current view bounds and changes bounds size.  调用这个方法来改变当前view的大小(让大小自适应)

  

    现在我从网页上加载一张图片并使用sizeToFit方法

//给imageView设置图片

-(void)setImage{

//从网页中获取图片的URL

NSURL *url = [NSURL URLWithString:@"http://img.taopic.com/uploads/allimg/140403/240438-1404030TT089.jpg"];

//根据url得到data

NSData *data = [NSData dataWithContentsOfURL:url];

//根据data得到图片

UIImage *image = [UIImage imageWithData:data];

//将image设置到imageView中

self.imageView.image = image;

//调用sizeTofit方法 得到适合当前view的尺寸

[self.imageView sizeToFit];

//手动设置frame

//self.imageView.frame = CGRectMake(0, 0, 375, 667);

NSLog(@"sizeToFit-----%@",NSStringFromCGRect(self.imageView.frame));

//设置scrollView的滚动范围

self.scrollView.contentSize = image.size;

}

此时打印imageView的大小

2016-05-28 22:33:39.401 测试sizeToFit[20263:1497379] sizeToFit-----{{0, 0}, {1000, 564}}

发现在我们并没有设置imageView的情况下 , imageView的大小正好等于图片的大小,所以可以说 sizeToFit 就是让当前的View根据子元素的大小来调整 他自己的大小(最合适的).

@interface UIView(UIViewGeometry)

因为是UIView的分类 所以UILabel中也可以调用这个方法来是UILable根据文字的大小来调整大小(同理其他的控件也是可以的);

虽然UIView和它的子控件都可以用 但是sizeToFit并不适合手动布局

所以我们一般在实际开发中并不怎么用 但是在一些系统自动布局的场合我们用sizeToFit就比较适合了

1.对navigationItem的设置,

2.对UIBarButtonItem的设置

3.UILabel中添加文字,然后让调整label的大小来适应文字,我们也调用sizeToFit的方法

4.等等

PS:关于从网页中加载图片一开始 有报错 查了资料才知道

iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输

所以我们需要在info.plist文件中添加一个属性

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

  

            

sizeToFit的用法和用途的更多相关文章

  1. HttpWebRequest,HttpWebResponse的用法和用途

    1.用途:HettpWebRequest,HettpWebResponse用途和webServers的作用差不多,都是得到一个页面传过来的值.HttpWebRequest 2.用法:--------- ...

  2. TAG的用法和用途[转]

    用一个例子来说明:一个combobox控件...一个textBox控件...一个datagridview控件!datagridview控件是连接数据库的...combobox和textBox是联合查询 ...

  3. 全面理解Javascript闭包和闭包的几种写法及用途

    好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法.用法和用途.  一.什么 ...

  4. 转 全面理解Javascript闭包和闭包的几种写法及用途

    转自:http://www.cnblogs.com/yunfeifei/p/4019504.html 好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说ja ...

  5. NLP点滴——文本相似度

    [TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...

  6. 【转】C#多线程学习

    C#多线程学习(一) 多线程的相关概念 什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源.而一个进程又是由多个线程所组成的. 什么是线程?线程是程序 ...

  7. FLEX SharedObject介绍及应用

    ShareObject介绍: 1 ShareObject,顾名思义共享对象,而通常意义上的共享,从B/S结构上来讲,无非是客户端(浏览器端)的共享和服务器端的共享了,不错,ShareObject刚好份 ...

  8. 《信息安全系统设计基础》第一次实验报告--Linux 基础入门

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

  9. C# 线程(四):生产者和消费者

    From : http://kb.cnblogs.com/page/42530/ 前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数.这可能带来的问题就是几个线程同时 ...

随机推荐

  1. VS-FluentData 单元测试

    1. 使用VS2013建立一个控制台工程: using System; using System.Collections.Generic; using System.Linq; using Syste ...

  2. BZOJ 3083 遥远的国度 树链剖分

    3083: 遥远的国度 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 797  Solved: 181[Submit][Status] Descrip ...

  3. 如何使用 Docker、ECS、Terraform 重建基础架构?

    早期 Segment 基础架构普遍组合在一起.我们通过 AWS 界面设定实例,使用许多闲散的 AMI,并且采用三种不同的部署方式. 然而随着商业的飞速发展,工程师团队的规模不断扩大,基础架构的复杂度也 ...

  4. Asterix and Obelix

    uva10246:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&am ...

  5. 基于springMVC+springSecurity3.x+Mybaits3.x的权限系统,,开放源码,支持开源

    原文地址:http://blog.csdn.net/mmm333zzz/article/details/16863543/

  6. ExecutorService介绍

    转自: http://victorzhzh.iteye.com/blog/1010359 下面是excutor相关的类结果: ExecutorService接口继承了Executor接口,定义了一些生 ...

  7. EntityFramework 异常 -- An entity object cannot be referenced by multiple instances of IEntityChangeTracker

    问题      在调用 DbSet 的 Attach()  方法时(与将 Entity 设置为 EntityState.Unchanged 状态等价)报告以下错误:      An entity ob ...

  8. (转)ASP.NET MVC路由配置

    一.命名参数规范+匿名对象 1 routes.MapRoute(name: "Default", 2 url: "{controller}/{action}/{id}&q ...

  9. 博弈论(男人八题):POJ 1740 A New Stone Game

    A New Stone Game Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5694   Accepted: 3119 ...

  10. BZOJ4195 [Noi2015]程序自动分析(离散化+并查集)

    4195: [Noi2015]程序自动分析 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 689  Solved: 296 [Submit][Sta ...