iOS开发用xib创建一个UIView(xib自定义view,修改不了frame的问题)

释放双眼,带上耳机,听听看~!

1.创建一个CustomerView的文件,commend+n,如图:
这里写图片描述

2.用xib创建一个view,命名为CustomerView,commend+n,如图:
这里写图片描述

3.修改xib中如下数据,
3.1 首先修改Custom Class中的Class为:CustomerView,即建立与CustomerView的关联关系,如图:
这里写图片描述
3.2 在修改xib 的 Simulated Metrics 的参数值,即使view的大小可自动变化,如图:
这里写图片描述

4.使用xib代码:

#import <UIKit/UIKit.h>

@interface CustomerView : UIView

+(instancetype)customerView;

@end
#import "CustomerView.h"

@implementation CustomerView

+(instancetype)customerView
{
    return [[[NSBundle mainBundle] loadNibNamed:@"CustomerView" owner:self options:nil] firstObject];
}

@end
//添加customerView
CustomerView *customerView = [CustomerView customerView];
customerView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight);
customerView.backgroundColor = [UIColor purpleColor];
[self.view addSubview:customerView];

注意:iOS用xib自定义view,修改不了frame的问题,主要是xib使用了autolayout布局页面,造成设置frame无效,所以去掉xib的autolayout布局(xib中把Use Auto layout的勾去掉,找到Simulated Metrics , 把Size 设置成None, 没有None就是Freeform)或者在drawRect中设置frame来解决(推荐后者),(例如:在UITableViewCell不能改变frame)
方法1:在“-(void)drawRect:(CGRect)rect”中设置:
frame明显设置不对cell的高度为100,xib的view中width=100,height=80,明显不对:
这里写图片描述
下边的frame才是正确的:
这里写图片描述

-(void)drawRect:(CGRect)rect
{
    _customerView.frame = CGRectMake(50, 30, 100, 50);
}

方法2:stackoverflow上网友答案:
这里写图片描述

为TA充电
共{{data.count}}人
人已赞赏
iOS文章

iOS开发一个XIB上创建多个CELL

2021-5-8 12:35:47

iOS文章

iOS开发Xib使用之TableViewCell.xib中创建多个Cell

2021-5-8 12:54:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索