一. WKWebView的使用问题

开始我想滑倒一个页面请求一个页面,没有显示的页面就从scrollView上移除。但是后来发现WKWebView并不能简单的用remove从父视图上移除,而且这种方法多次加载后会变的非常卡顿。我还没有找到特别好的解决方法,于是放弃这种思路。思路二我简化了第一个思路。依然是滑倒一个页面加载一个页面,不过没有显示的页面不会移除它,而是把它放到一个集合。每次加载页面前都通过集合判断这个页面是否已加载过,以减少多次重复加载造成的卡顿。

二. 无限右滑

设置当页面滑倒最右边继续滑动一定距离会发送通知。

[[NSNotificationCenter defaultCenter] postNotificationName:@"scrollRightMore" object:nil userInfo:@{@"value":[NSNumber numberWithInteger:number]}];

ViewController注册通知,接收通知后进行新一轮网络请求。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getlastTimeStories) name:@"scrollViewRightMore" object:nil];

刷新tableView和网络界面(一定要切换主线程,栽了几次了)。

[_manage getLastTime:lastDate StoriesData:^(LastStoriesModel * _Nonnull lastStoriesModel) {

if (self->_lastStoriesModelArray == nil) {

self->_lastStoriesModelArray = [[NSMutableArray alloc] init];

}

[self->_lastStoriesModelArray addObject:lastStoriesModel];

dispatch_async(dispatch_get_main_queue(), ^{

[self sendStoriserToView:lastStoriesModel];

[self->_interFaceView viewInit];

});

} error:^(NSError * _Nonnull error) {

NSLog(@"getLastModel error");

}];

三. 数据库储存

学习使用FMDB库储存一些基本数据。我这里分别储存了点赞页面和收藏页面的ID。如果需要使用,就要ID重新申请。

这里一个问题是在储存进数据库前,我是用集合储存这些数据的。但是在插入数据是我是遍历集合插入,就会导致很多数据被多次重复储存。

我的解决办法是每次插入前先在数据库查询一次要插入的元素,如果没有在插入。

- (void) saveStroiesLikeSet {

if ([self.likeDatabase open]) {

for (NSString* ID in self.storiesLikeSet) {

FMResultSet* resultSet = [self.likeDatabase executeQuery:@"SELECT * FROM likeData WHERE mainLable = ?", ID];

if (![resultSet next]) {

BOOL result = [self.likeDatabase executeUpdate:@"INSERT INTO likeData (mainLable) VALUES (?)", ID];

if (result) {

NSLog(@"insert table succeed");

} else {

NSLog(@"insert table error");

}

}

}

[self.likeDatabase close];

}

}

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。