【iOS开发】—— 知乎日报第二周总结

一、自动轮播图的实现

之前写demo的时候都是照抄网上或者复制的,没有真正的学会,这周我花费了一段时间自己敲出来,首先是要实现无限轮播:
我的思路就是在图片的左边再加一张最后一张图片,在右边再加一张第一张图片,然后当到了最左边的时候,将UIScrollView的左边变到最后一张图片,右边同理。如下图:
【iOS开发】—— 知乎日报第二周总结_第1张图片

我这里是一共5张图片


//W位屏宽
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (self.scrollView.contentOffset.x == W * 6) {
        [self.scrollView setContentOffset:CGPointMake(W, 0) animated:NO] ;
    }
    if (self.scrollView.contentOffset.x == 0) {
        [self.scrollView setContentOffset:CGPointMake(W * 5, 0) animated:NO] ;
    }
    CGFloat offSetX = self.scrollView.contentOffset.x + W * 0.5;
    int page = offSetX / W;
    if (page == 6) {
        self.pageControl.currentPage = 0;
    } else if (page == 0) {
        self.pageControl.currentPage = 4;
    } else {
        self.pageControl.currentPage = page - 1;
    }
}```

自动轮播就是设置一个计时器,在拖动滚动视图的时候将其销毁,在停止拖动时再将其启动。
创建计时器:
```objectivec
- (void) setup {
    self.timer = [NSTimer timerWithTimeInterval:3 target:self selector:@selector(autoPlay) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
}

停止拖动时:


- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    [self setup];
}

拖动时:


- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    if(scrollView.tag == 102) {
        [self.timer invalidate];
    }
}

自动播放:

- (void)autoPlay {
    int page = self.scrollView.contentOffset.x / W + 1;
    if (page == 6) {
        self.pageControl.currentPage = 0;
        self.scrollView.contentOffset = CGPointMake(W, 0);
    } else {
        self.pageControl.currentPage = page - 1;
        [self.scrollView setContentOffset:CGPointMake(page * W, 0) animated:YES] ;
    }
}

二、刷新内容

思路:在将UITableView拖动到一个坐标时,然后请求旧数据,然后刷新修改cell的格数并且添加内容。
设置一个全局变量,在每次请求后给它的值加一,然后格数增加一倍。

三、“小菊花”的添加

我将UITableView多分出来一组,这组只有一个cell,只用于存放小菊花。每当数据请求成功后就将其停止。

四、 WKWebView的使用

你可能感兴趣的:(ios,objective-c,开发语言)