最近有遇到过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. Dictionary Size

    uvaLive5913:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...

  2. lc面试准备:Candy

    1 题目 There are N children standing in a line. Each child is assigned a rating value. You are giving ...

  3. 【HDOJ】4109 Instrction Arrangement

    差分约束. /* 4109 */ #include <iostream> #include <queue> #include <vector> #include & ...

  4. What does the number on the visual studio solution icon represent?

    The numbers correspond to the internal version numbers of various editions of Visual Studio http://e ...

  5. Tomcat禁止显示目录和文件列表

    Tomcat禁止显示目录和文件列表 打开   tomcat的安装目录/conf/web.xml 文件 <servlet> <servlet-name>default</s ...

  6. bzoj1297

    首先学习是学习矩阵乘法在邻接矩阵的应用ab两点经过k条边的路径数就等于图的邻接矩阵G的k次幂之后G[a,b]的值但这道题问的是经过长度为k的路径数考虑到每条边的长度最长只有9,所以我们把一个点拆成9个 ...

  7. 【转】在ubuntu环境下搭建svn server遇到的一些问题

    原文网址:http://www.cnblogs.com/pcchinadreamfly/archive/2012/11/24/2786046.html 前段时间在ubuntu 12.04lts上倒腾了 ...

  8. Spark(Hive) SQL数据类型使用详解(Python)

    Spark SQL使用时需要有若干“表”的存在,这些“表”可以来自于Hive,也可以来自“临时表”.如果“表”来自于Hive,它的模式(列名.列类型等)在创建时已经确定,一般情况下我们直接通过Spar ...

  9. POI做题记录:第二届POI

    Trees Memory limit: 32 MB Trees occur very often in computer science. As opposed to trees in nature, ...

  10. 使用sqlhelper的简单增删改查

    一:所说的简单的三层构架,就是说没有业务逻辑层,将各层没有放到单独的项目中,解决方案如下: 二:form1.cs的详细代码 using System; using System.Collections ...