TableView+ScrollView
- 往cell里加label
- 解决重影的办法
- 重用cell的时候删除元素
NSArray *subViews = cell.subviews;
for (UIView *view in subViews) {
[view removeFromSuperview];
}
- 在if(cell==nil)中去定义子视图,加上tag值.在外边通过tag值获取视图,修改值
- 封装一个自定义的cell类
//http://www.tuicool.com/articles/bE7JNnI
- 将获得cell的方法从- (UITableViewCell*)dequeueReusableCellWithIdentifier:(NSString*)identifier 换为-(UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath.重用机制调用的就是dequeueReusableCellWithIdentifier这个方法,方法的意思就是“出列可重用的cell”,因而只要将它换为cellForRowAtIndexPath(只从要更新的cell的那一行取出cell),就可以不使用重用机制,因而问题就可以得到解决,虽然可能会浪费一些空间。
- 通过为每个cell指定不同的重用标识符(reuseIdentifier)来解决。重用机制是根据相同的标识符来重用cell的,标识符不同的cell不能彼此重用。于是我们将每个cell的标识符都设置为不同,就可以避免不同cell重用的问题了。
//http://www.mamicode.com/info-detail-470734.html
下面是用ScrollView的一段代码
1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 //控制条?不透明 4 self.navigationController.navigationBar.translucent = NO; 5 UIScrollView *scroll = [[UIScrollView alloc] init]; 6 scroll.frame = self.view.frame; 7 scroll.backgroundColor = [UIColor darkGrayColor]; 8 scroll.contentSize = CGSizeMake(self.view.frame.size.width*5, self.view.frame.size.height-64); 9 NSLog(@"%f",(double) self.navigationController.navigationBar.frame.size.height); 10 //一页一页的滑动 11 scroll.pagingEnabled = YES; 12 scroll.contentOffset = CGPointMake(self.view.frame.size.width*2,0); 13 [self.view addSubview:scroll]; 14 15 for (int i=0;i<5; i++) { 16 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(image)]; 17 UIImageView *imageView = [[UIImageView alloc] init]; 18 imageView.userInteractionEnabled = YES; 19 imageView.frame = CGRectMake(self.view.frame.size.width*i, 0, self.view.frame.size.width, self.view.frame.size.height-64); 20 NSLog(@"%f",(double) self.navigationController.navigationBar.frame.size.height); 21 imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.png",i+1]]; 22 [imageView addGestureRecognizer:tap]; 23 [scroll addSubview:imageView]; 24 } 25 // Do any additional setup after loading the view, typically from a nib. 26 } 27 28 - (void)image{ 29 FirstViewController *firstVC = [FirstViewController new]; 30 [self.navigationController pushViewController:firstVC animated:YES]; 31 }