遇到过好多次使用自定义view,修改frame无效问题, 之前都是放弃xib,直接手写,发现手写简单的还行,复杂的UI就坑逼了.所以还是需要用到可视化编辑的xib. 整理一下,自己备忘也供iOS开发的朋友参考: 一般我们会直接这样写: XPGovRecUnitView *recUnitView = [[[NSBundle mainBundle] loadNibNamed:@"XPGovRecUnitView" owner:self options:nil] firstObject];…
如果控制器使用xib做的,在viewDidLoad方法中获取的view.frame是不正确的 这根xib的加载有关, 可以把需要做的事情写在viewWillAppear中就能解决…
1.新建一个xib文件描述一个view的内部结构(假设叫做SSTgCell.xib) 2.新建一个自定义的类 (自定义类需要继承自系统自带的view, 继承自哪个类,  取决于xib根对象的Class) 3.新建类的类名最好跟xib的文件名保持一致(比如类名就叫做SSTgCell) 4.将 xib中的控件 和 自定义类的.m文件 进行连线 5.提供一个类方法返回一个 创建好的自定义view (屏蔽从xib加载的过程,使这个过程封装在类方法里) 6.提供一个模型属性让外界传递进来 模型数据 7.重…
先新建一个View的xib,然后删掉自动生成的View,拖进一个UICollectionCell,再新建一个对应的UIView继承UICollectionCell类. OK,接下来该连outlet的就连. 设置delegate和dataSource 然后通常我们都要这样, func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollect…
首先,keyPath一定是frame,而不是frame.origin.x之类的路径,因为再点下去的话,就是访问结构体内部的值了,KVO是无法检测的,会报错找不到KeyPath. 代码如下: [_funcMenuVC.view addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil]; 在KVO对应的方法里打印监…
前言: 在ios开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别,尤其是bound很绕,较难理解. 一.首先,看一下公认的资料: 先看到下面的代码你肯定就明白了一些: -(CGRect)frame{ return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height); } -(CGRect)bounds{ ,,self.…
前言: 学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bound的含义.PS:我承认我是一个很笨很笨的人. 所以现在记录下来,供以后查阅,同时方便所有和我一样有疑惑的人查看. 一.首先列一下公认的资料: 先看到下面的代码你肯定就明白了一些: -(CGRect)frame{     return CGRectMake(self.frame.origin.x,…
前言: 学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bound的含义.PS:我承认我是一个很笨很笨的人. 所以现在记录下来,供以后查阅,同时方便所有和我一样有疑惑的人查看. 一.首先列一下公认的资料: 先看到下面的代码你肯定就明白了一些:-(CGRect)frame{    return CGRectMake(self.frame.origin.x,se…
1.在view不是很复杂的情况下,如果多次检查后依旧出现coding-compliant这种情况,干脆彻底删除这个xib重新新建一个xib来做一遍.(至今未明真相) 2.初始化xib中的view的大致步骤: //在superView中调用此方法以初始化此view + (XTTopFloatingView*)instanceXTTopFloatingView{ NSArray *nibView = [[NSBundle mainBundle]loadNibNamed:@"XTTopFloating…
在iOS中view的frame属性使用地太频繁了,尤其是调UI的时候.我们知道,正常情况下我们无法对frame的某个属性(x,y,width,height等)进行单独修改,比如: someView.frame.x = 100: 这种方式是不允许的,但实际上我们更经常遇到的是frame的大部分元素值保持不变,只改变其中的一部分.相信这个烦恼困扰了不少人,于是我们不得不用以下两种方法去达到目的: 法1: CGRect frame = someView.frame; frame.x =100; fra…