iOS用xib自定义view,修改不了frame的问题
来源:互联网 发布:软件设计师成绩查询 编辑:程序博客网 时间:2024/05/17 23:31
转自:http://blog.sina.com.cn/s/blog_5971cdd00102wm5m.html
想要做一个图一所示的效果
由于我整体布局用的是tableview而不是collectionview,打算把四块商品展示弄成一个cell,
每一个商品展示用自定义View来写,for循环4次创建4个这样的View。如下图。
这个自定义View是用xib来做的,初始化代码如下:
HotProductView.m
-(id)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
NSArray*nibs=[[NSBundle mainBundle]loadNibNamed:@"HotProductView" owner:nil options:nil];
self=[nibsobjectAtIndex:0];
self.frame = frame;
}
return self;
}
Cell里创建这个自定义视图的代码如下:
HotProductView * proView = [[HotProductViewalloc]initWithFrame:CGRectMake(10+(width+5)*0,5+(height+5)*0,150, 250)];
结果proView的宽高好像没有设置成功,总会比cell的contentview的高度还高。(绿为contentview,红为自定义view)
解决办法是 在-(void)drawRect:(CGRect)rect里面重新设置frame
HotProductView.m
@interface HotProductView ()
{
CGRect myframe;
}
@end
@implementation HotProductView
-(id)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
NSArray*nibs=[[NSBundle mainBundle]loadNibNamed:@"HotProductView" owner:nil options:nil];
self=[nibsobjectAtIndex:0];
myframe = frame;
}
return self;
}
-(void)drawRect:(CGRect)rect
{
self.frame=myframe;//关键点在这里
}
想要做一个图一所示的效果
由于我整体布局用的是tableview而不是collectionview,打算把四块商品展示弄成一个cell,
每一个商品展示用自定义View来写,for循环4次创建4个这样的View。如下图。
这个自定义View是用xib来做的,初始化代码如下:
HotProductView.m
-(id)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
NSArray*nibs=[[NSBundle mainBundle]loadNibNamed:@"HotProductView" owner:nil options:nil];
self=[nibsobjectAtIndex:0];
self.frame = frame;
}
return self;
}
Cell里创建这个自定义视图的代码如下:
HotProductView * proView = [[HotProductViewalloc]initWithFrame:CGRectMake(10+(width+5)*0,5+(height+5)*0,150, 250)];
结果proView的宽高好像没有设置成功,总会比cell的contentview的高度还高。(绿为contentview,红为自定义view)
解决办法是 在-(void)drawRect:(CGRect)rect里面重新设置frame
HotProductView.m
@interface HotProductView ()
{
CGRect myframe;
}
@end
@implementation HotProductView
-(id)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
NSArray*nibs=[[NSBundle mainBundle]loadNibNamed:@"HotProductView" owner:nil options:nil];
self=[nibsobjectAtIndex:0];
myframe = frame;
}
return self;
}
-(void)drawRect:(CGRect)rect
{
self.frame=myframe;//关键点在这里
}
- iOS用xib自定义view,修改不了frame的问题
- [iOS]通过xib自定义cell的时候在awakeFromNib方法里面修改view的frame无效
- xib创的view修改frame
- iOS--Xib文件中定义的控件修改frame问题
- iOS关于xib关联子view后 用代码无法更改frame的问题
- iOS开发 带xib的自定义View自适应屏幕问题
- IOS XIB自定义View
- iOS: xib自定义view的模版小记
- iOS--控制器加载自定义view的xib
- 关于使用xib的自定义UITableViewCell中修改其中view的问题及解决
- IOS 使用XIB 自定义View
- IOS 使用XIB 自定义View
- IOS 使用XIB 自定义View
- IOS 使用XIB 自定义View
- IOS 使用XIB 自定义View
- ios使用xib自定义view
- ios使用xib自定义view
- IOS 使用XIB 自定义View
- js 中的 typeof 和 instanceof 的区别
- The SDK directory 'XXXXXX' does not exist
- 享元模式
- 一、Java内存区域
- Geoserver端口冲突解决方案
- iOS用xib自定义view,修改不了frame的问题
- VisualStudio2017相关说明整理(二)
- 自定义 RokSprocket 主题
- int main(int argc,char*argv[])参数详解
- React 定义组件的参数对象
- 数据结构实验之查找三:树的种类统计
- Java 泛型
- 森林结点数,边数与树个数的关系
- Java 关于支付的实现(微信、支付宝)