博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 使用xib定义一个View,修改frame无效问题解决
阅读量:7156 次
发布时间:2019-06-29

本文共 1546 字,大约阅读时间需要 5 分钟。

遇到过好多次使用自定义view,修改frame无效问题, 之前都是放弃xib,直接手写,发现手写简单的还行,复杂的UI就坑逼了。所以还是需要用到可视化编辑的xib。

整理一下,自己备忘也供iOS开发的朋友参考:

 

一般我们会直接这样写:

XPGovRecUnitView *recUnitView = [[[NSBundle mainBundle] loadNibNamed:@"XPGovRecUnitView" owner:self options:nil] firstObject];            recUnitView.tag = 10000+i;            recUnitView.delegate = self;            recUnitView.frame = CGRectMake(i*89, 0, 89, 139);

  

这是我一个项目中的代码,但是这样出现了一个问题就是iPhone 6,6Plus以上的正常, iPhone5s屏幕尺寸的就显示不正常了。

使用

UIView *recUnitView = [[UIView alloc] initWithFrame:CGRectMake(i*89, 0, 89, 139)];

调试后发现,使用alloc的方式iPhone5也是正常的。但是这样就要手写代码,往这个UIView 添加控件

 

解决方案:

1. 先把 XPGovRecUnitView.xib这个xib文件的属性设置一下

  在右侧属性栏中,

  找到Interface Builder Document , 把Use Auto layout的勾去掉
  找到Simulated Metrics , 把Size 设置成None, 没有None就是Freeform

2.修改XPGovRecUnitView.m代码 

  

#import "XPGovRecUnitView.h"@interface XPGovRecUnitView (){    CGRect tempframe;}@end@implementation XPGovRecUnitView-(id)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        NSArray *nibs=[[NSBundle mainBundle]loadNibNamed:@"XPGovRecUnitView" owner:nil options:nil];        self=[nibs objectAtIndex:0];                tempframe = frame;                [self initSubViews];    }    return self;}-(void)drawRect:(CGRect)rect{    self.frame = tempframe;    }@end

  

3.使用时代码

  

XPGovRecUnitView *recUnitView = [[XPGovRecUnitView alloc] initWithFrame:CGRectMake(i*89, 0, 89, 139)];            recUnitView.tag = 10000+i;            recUnitView.delegate = self;

  

这样就正常了。

 

转载于:https://www.cnblogs.com/xiaopin/p/7085286.html

你可能感兴趣的文章
Verilog学习----调试用系统任务和常用编译预处理语句
查看>>
个人知识管理工具 PinPKM
查看>>
es6 Proxy对象详解
查看>>
设计一个精致按钮
查看>>
为IE8添加EventListener系列方法支持
查看>>
数据库基本语法
查看>>
环境监测小助手V1.1的Windows版
查看>>
bzoj1046(HAOI2007)上升序列
查看>>
bzoj 1898 [Zjoi2005]Swamp 沼泽鳄鱼——矩阵快速幂
查看>>
js获取本机内网IP地址和MAC地址
查看>>
7. Reverse Integer
查看>>
MySql错误处理(三)- 错误处理的例子
查看>>
Unity3D光照前置知识——Rendering Paths(渲染路径)及LightMode(光照模式)译解
查看>>
Linux多线程Pthread学习小结
查看>>
JVM性能调优入门
查看>>
关于BMP
查看>>
UML视频
查看>>
Jmeter性能测试 入门
查看>>
jmeter实现Http接口测试介绍
查看>>
iOS 九宫格的实现
查看>>