我想题目说的或许不是很清楚,那么现在我详细介绍一下这篇随笔内容。

在外部无法改变UIVIew控件的size。

这里说是UIView,但是事实上,是大多数控件而绝非仅UIView。

想要实现在外部无法改变size该怎么做呢。

首先是重写setFrame使其规定本身size,如下

//
// TestView.m
// CX-实现在外部无法改变UIView的Size
//
// Created by ma c on 16/3/25.
// Copyright © 2016年 xubaoaichiyu. All rights reserved.
// #import "TestView.h" @implementation TestView -(void)setFrame:(CGRect)frame{ frame.size = CGSizeMake(, ); [super setFrame:frame];
} @end

重写setFrame后我们可以进行测试。

在VC里我吧TestVIew的size 设置为{200,200}。

由此可见,在外部无法改变UITestView的Size

但是下面的结果却并非如此

我们先是设置UITestView的Center。

然后设置UITestView的Bounds

//
// ViewController.m
// CX-实现在外部无法改变UIView的Size
//
// Created by ma c on 16/3/25.
// Copyright © 2016年 xubaoaichiyu. All rights reserved.
// #import "ViewController.h"
#import "TestView.h"
@interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; TestView * view = [[TestView alloc]init]; view.center = self.view.center; view.bounds = CGRectMake(, , , ); [self.view addSubview:view]; NSLog(@"%@",NSStringFromCGRect(view.frame)); } @end

结果如下

可见:UITestView 的size有所改变,没关系。

我们再重写一下bounds。

//
// TestView.m
// CX-实现在外部无法改变UIView的Size
//
// Created by ma c on 16/3/25.
// Copyright © 2016年 xubaoaichiyu. All rights reserved.
// #import "TestView.h" @implementation TestView -(void)setFrame:(CGRect)frame{ frame.size = CGSizeMake(, ); [super setFrame:frame];
}
-(void)setBounds:(CGRect)bounds{ bounds.size = CGSizeMake(, ); [super setBounds:bounds];
}
@end

结果如下:

//
// TestView.m
// CX-实现在外部无法改变UIView的Size
//
// Created by ma c on 16/3/25.
// Copyright © 2016年 xubaoaichiyu. All rights reserved.
// #import "TestView.h" @implementation TestView -(void)setFrame:(CGRect)frame{ frame.size = CGSizeMake(, ); [super setFrame:frame];
}
-(void)setBounds:(CGRect)bounds{ bounds.size = CGSizeMake(, ); [super setBounds:bounds];
}
@end

由此得出结论,如果想要是UIView控件在外部无法改变size,我们只需要重写frame,bounds即可。

同理,我们还可以实现一些其他的操作。

IOS 杂笔-11(实现在外部无法改变UIView的size)的更多相关文章

  1. iOS 杂笔-25(不要用copy修饰NSMutableString)

    iOS 杂笔-25(不要用copy修饰NSMutableString) 首先对题目进行简单的解释,我所说的不要用copy修饰NSMutableString不是说完全不可以用.但是要清楚一点,既然使用N ...

  2. iOS 杂笔-24(常用类到NSObject的继承列表)

    iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...

  3. iOS 杂笔-23(区分各种空值)

    iOS 杂笔-23(区分各种空值) nil是一个对象指针为空 Nil是一个类指针为空 NULL是基本数据类型为空 NSNull空对象(是可以放在数组里的)

  4. iOS 杂笔-22(万年一遇~一张图片对代理的理解)

    iOS 杂笔-22(万年一遇~一张图片对代理的理解) 建议:本博客需要对代理有一定了解方可阅读(反正我也管不到) 图片 在图片之外设置协议(没有这东西这篇博客也就是夭折了) 下面我对图片中出现的形形色 ...

  5. iOS 杂笔-21(self.name = “object” 和 _name =”object” 有什么不同?)

    iOS 杂笔-21(self.name = "object" 和 _name ="object" 有什么不同?) 问题如题,这是考察对属性与变量的了解而已. s ...

  6. iOS 杂笔-20(UIView和CALayer的区别与联系)

    iOS 杂笔-20(UIView和CALayer的区别与联系) 每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提 ...

  7. IOS 杂笔-19(属性与变量的优缺点)

    IOS 杂笔-19(属性与变量的优缺点) 在前面的文章中我介绍了属性与变量的区别.这篇博客我将会简单介绍一下属性与变量的优缺点. 变量 优点: 访问速度快 缺点: 使用不灵活 属性 缺点: 耗时 优点 ...

  8. iOS 杂笔-26(苹果禁用热更新)

    iOS 杂笔-26(苹果禁用热更新) 苹果爸爸禁用热更新小伙伴们有什么想说的吗? 苹果爸爸禁用热更新小伙伴们有什么想说的吗? 苹果爸爸禁用热更新小伙伴们有什么想说的吗?

  9. IOS 杂笔-9 (MD5 加密)

    首先是一段对MD5的简介 *出自一位大牛之手* Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 ...

随机推荐

  1. 当前端也拥有 Server 的能力

    今天看了不少文章,比较感兴趣的是 Cache API.它是浏览器 Request/Response 的缓存管理工具,其使用风格和运用场景让我瞬间联想到了 ServiceWorker 和 Fetch A ...

  2. ABP源码分析八:Logger集成

    ABP使用Castle日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等.对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方 ...

  3. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

    系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分支执行. 起草的同时,我们分解流转的规则中的审批人并保存,具体流程如下 接下来创建DrafContoller控制器,此控制器只 ...

  5. [摘录]第三部分 IBM文化(1)

    第二十章 论公司文化如果是在20世纪90年代初期,当一个人看见或者听到“IBM”时,他会联想到什么呢?或许是“大计算机”.“个人电脑”或者“ThinkPads”.但是,他们同时也必然会想到“大公司”. ...

  6. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

  7. Spring IoC源码解析——Bean的创建和初始化

    Spring介绍 Spring(http://spring.io/)是一个轻量级的Java 开发框架,同时也是轻量级的IoC和AOP的容器框架,主要是针对JavaBean的生命周期进行管理的轻量级容器 ...

  8. 设置nginx禁止IP直接访问,只能通过指定的域名访问

    nginx的版本是1.2.1. 设置配置文件disableip.conf: server {     listen 80;     server_name _;     return500; } 这是 ...

  9. 利用Vue.js实现拼图游戏

    之前写过一篇<基于Vue.js的表格分页组件>的文章,主要介绍了Vue组件的编写方法,有兴趣的可以访问这里进行阅读:http://www.cnblogs.com/luozhihao/p/5 ...

  10. LINQ to SQL语句(20)之存储过程

    在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些.下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下. 1.标量返回 在数据库中, ...