ScrollView来代替TableView的使用

来源:互联网 发布:用网络命令查看dns 编辑:程序博客网 时间:2024/06/07 18:46

最近用TableView来写一个视频搜索的APP首页,然后做出了发现,有三个自定义的单元格,然后第一个是一个ScrollView,发现,当做好了以后,往下滑几次页面,上面的ScrollView自己动的速度越来越快,而且有一下label直接重复显示,一层叠加一层,最后发现是单元格重用的缘故。所以,有时候为了避免出现这种问题,就用ScrollView来代替整个的TableView,然后里面的自定义单元就用UIView来代替。
1。为ScrollView来写一个Model,便于获取数据方便。

@interface ScrollViewItemModel : NSObject@property (nonatomic,strong) NSString *titleName;@property (nonatomic,strong) NSString *imagePath;@property (nonatomic,strong) NSString *imageUrl;@end@protocol  ScrollViewItemModel<NSObject>@end@interface ScrollModel : NSObject@property (nonatomic,strong) NSMutableArray <ScrollViewItemModel> *contents;

2 自定义UIView
这个是我自定义的单元格

3 在相应的controller中编写代码,导入自己自定义的UIView
(1)先在controller中定义一个大的ScrollView

self.HomeSrcoll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0,SCREEN_WIDTH, SCREEN_HEIGHT)];    CGFloat contentH=800;    //设置滚动方向为X方向    self.HomeSrcoll.contentSize=CGSizeMake(0,contentH);    //设置不分页    self.HomeSrcoll.pagingEnabled=NO;    self.HomeSrcoll.delegate=self;

(2)加载刚刚写的xib

//加载xib    UINib *nib = [UINib nibWithNibName:@"ScrollView" bundle:nil];    NSArray *nibArray = [nib instantiateWithOwner:self options:nil];    ScrollView *scroll = [nibArray firstObject];    scroll.frame = CGRectMake(0, 0, SCREEN_WIDTH, 100);    [scroll setData:self.scrollViewModel];    [self.homeScrollView addSubview:scroll];
0 0