[某鸥实训记][objective-c][第五天][个人笔记]

时间:2020-12-11 20:40:20

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 }