当前位置: 首页 > news >正文

企业建网站哪家好怎么制作公众号的链接

企业建网站哪家好,怎么制作公众号的链接,姐姐直播tv,棋牌网站怎么做优化文章目录 一、评论区展开与收缩二、FMDB库实现本地持久化FMDB常用类#xff1a;FMDB的简单使用#xff1a; 三、点赞和收藏的持久化 一、评论区展开与收缩 有的评论没有被回复评论或者被回复评论过短#xff0c;这时就不需要展开全文的按钮#xff0c;所以首先计算被回复评… 文章目录 一、评论区展开与收缩二、FMDB库实现本地持久化FMDB常用类FMDB的简单使用 三、点赞和收藏的持久化 一、评论区展开与收缩 有的评论没有被回复评论或者被回复评论过短这时就不需要展开全文的按钮所以首先计算被回复评论的文本高度根据文本高度来决定是否隐藏展开全文的按钮。 CGSize constrainedSize CGSizeMake(WIDTH - 70, CGFLOAT_MAX); // labelWidth为UILabel的宽度高度设置为无限大NSDictionary *attributes {NSFontAttributeName: cell.replyLabel.font}; // label为要计算高度的UILabel控件CGRect textRect [cell.replyLabel.text boundingRectWithSize:constrainedSizeoptions:NSStringDrawingUsesLineFragmentOriginattributes:attributescontext:nil];CGFloat textHeight CGRectGetHeight(textRect);if (textHeight 100) {cell.foldButton.hidden NO;} else {cell.foldButton.hidden YES;}要实现评论区的展开全文和收起需要先实现评论区文本的自适应高度接着我用数组来记录每个按钮的状态如果为展开状态则为1如果为收起状态则为0。通过数组中按钮的状态为按钮的selected属性做出选择并改变cell的高度。当我点击按钮时就改变该按钮在数组中的相应值。 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {if (indexPath.section 0 self.longComments ! 0) {NSString* longStr [self.discussModel.longCommentsArray[indexPath.row] content];NSString* longReplyStr [self.discussModel.longCommentsArray[indexPath.row] reply_to][content];CGSize constrainedSize CGSizeMake(WIDTH - 70, CGFLOAT_MAX); // labelWidth为UILabel的宽度高度设置为无限大UIFont *font [UIFont systemFontOfSize:18.0];NSDictionary *attributes {NSFontAttributeName: font}; // label为要计算高度的UILabel控件CGRect textRect [longStr boundingRectWithSize:constrainedSizeoptions:NSStringDrawingUsesLineFragmentOriginattributes:attributescontext:nil];CGFloat textHeight CGRectGetHeight(textRect);CGSize constrainedSize02 CGSizeMake(WIDTH - 70, CGFLOAT_MAX); // labelWidth为UILabel的宽度高度设置为无限大UIFont *font02 [UIFont systemFontOfSize:16.0];NSDictionary *attributes02 {NSFontAttributeName: font02}; // label为要计算高度的UILabel控件CGRect textRect02 [longReplyStr boundingRectWithSize:constrainedSize02options:NSStringDrawingUsesLineFragmentOriginattributes:attributes02context:nil];CGFloat textHeight02 CGRectGetHeight(textRect02);NSLog(长评论高度为%f, textHeight);if ([self.discussModel.longButtonSelectArray[indexPath.row] isEqualToString:1]) {return textHeight textHeight02 180;}return textHeight 180;} else {NSString* shortStr [self.discussModel.shortCommentsArray[indexPath.row] content];NSString* shortReplyStr [self.discussModel.shortCommentsArray[indexPath.row] reply_to][content];CGSize constrainedSize CGSizeMake(WIDTH - 70, CGFLOAT_MAX); // labelWidth为UILabel的宽度高度设置为无限大UIFont *font [UIFont systemFontOfSize:18.0];NSDictionary *attributes {NSFontAttributeName: font}; // label为要计算高度的UILabel控件CGRect textRect [shortStr boundingRectWithSize:constrainedSizeoptions:NSStringDrawingUsesLineFragmentOriginattributes:attributescontext:nil];CGFloat textHeight CGRectGetHeight(textRect);CGSize constrainedSize02 CGSizeMake(WIDTH - 70, CGFLOAT_MAX); // labelWidth为UILabel的宽度高度设置为无限大UIFont *font02 [UIFont systemFontOfSize:16.0];NSDictionary *attributes02 {NSFontAttributeName: font02}; // label为要计算高度的UILabel控件CGRect textRect02 [shortReplyStr boundingRectWithSize:constrainedSize02options:NSStringDrawingUsesLineFragmentOriginattributes:attributes02context:nil];CGFloat textHeight02 CGRectGetHeight(textRect02);NSLog(段评论高度为%f, textHeight);if ([self.discussModel.shortButtonSelectArray[indexPath.row] isEqualToString:1]) {return textHeight textHeight02 180;}return textHeight 180;} }- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section 0 self.longComments ! 0) {if (indexPath.row 0) {cell.commentsNumLabel.text [NSString stringWithFormat:%ld条长评, self.longComments];}cell.foldButton.tag indexPath.row * 2 1;if ([self.discussModel.longButtonSelectArray[indexPath.row] isEqualToString:1]) {cell.foldButton.selected YES;cell.replyLabel.numberOfLines 0;} else {cell.foldButton.selected NO;cell.replyLabel.numberOfLines 2;} }else {cell.foldButton.tag indexPath.row * 2;if ([self.discussModel.shortButtonSelectArray[indexPath.row] isEqualToString:1]) {cell.foldButton.selected YES;cell.replyLabel.numberOfLines 0;} else {cell.foldButton.selected NO;cell.replyLabel.numberOfLines 2;} - (void)pressFold:(UIButton*)button {DiscussCustomCell* cell (DiscussCustomCell*)[[button superview] superview];if ([self.discussModel.longButtonSelectArray[(button.tag - 1) / 2] isEqualToString:1]) {[self.discussModel.longButtonSelectArray replaceObjectAtIndex:((button.tag - 1) / 2) withObject:0];[self.discussView.tableview reloadData];} else {[self.discussModel.longButtonSelectArray replaceObjectAtIndex:((button.tag - 1) / 2) withObject:1];[self.discussView.tableview reloadData];}if ([self.discussModel.shortButtonSelectArray[button.tag / 2] isEqualToString:1]) {[self.discussModel.shortButtonSelectArray replaceObjectAtIndex:(button.tag / 2) withObject:0];[self.discussView.tableview reloadData];} else {[self.discussModel.shortButtonSelectArray replaceObjectAtIndex:(button.tag / 2) withObject:1];[self.discussView.tableview reloadData];} }二、FMDB库实现本地持久化 FMDB是iOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言API。 FMDB常用类 FMDatabase一个FMDatabase对象就代表一个单独的SQLite数据库用来执行SQL语句。 FMResultSet使用FMDatabase执行查询后的结果集。 FMDatabaseQueue用于在多线程中执行多个查询或更新它是线程安全的。 FMDB的简单使用 要使用FMDB库首先需要通过CocoaPods来安装这个第三方库 pod FMDB 安装完成之后就可以进行使用了。 创建数据库 //获取数据库文件的路径NSString* doc [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];NSString *fileName [doc stringByAppendingPathComponent:collectionData.sqlite];//获得数据库self.collectionDatabase [FMDatabase databaseWithPath:fileName];//打开数据库if ([self.collectionDatabase open]) {BOOL result [self.collectionDatabase executeUpdate:CREATE TABLE IF NOT EXISTS collectionData (mainLabel text NOT NULL, nameLabel text NOT NULL, imageURL text NOT NULL, networkURL text NOT NULL, dateLabel text NOT NULL, nowLocation text NOT NULL, goodState text NOT NULL, collectionState text NOT NULL, id text NOT NULL);];if (result) {NSLog(创表成功);} else {NSLog(创表失败);}}数据库增加数据 //插入数据 - (void)insertData {if ([self.collectionDatabase open]) {NSString *string GenShen;BOOL result [self.collectionDatabase executeUpdate:INSERT INTO collectionData (mainLabel, nameLabel, imageURL, networkURL, dateLabel, nowLocation, goodState, collectionState, id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);, string, string, string, string, string, string, string, string, string];if (!result) {NSLog(增加数据失败);}else{NSLog(增加数据成功);}[self.collectionDatabase close];} }数据库修改数据 //修改数据 - (void)updateData {if ([self.collectionDatabase open]) {NSString* sql UPDATE collectionData SET id ? WHERE nameLabel ?;BOOL result [self.collectionDatabase executeUpdate:sql, 114514,GenShen];if (!result) {NSLog(数据修改失败);} else {NSLog(数据修改成功);}[self.collectionDatabase close];} }数据库删除数据 //删除数据 - (void)deleteData {if ([self.collectionDatabase open]) {NSString* sql delete from collectionData WHERE collectionState ?;BOOL result [self.collectionDatabase executeUpdate:sql, 爱玩原神];if (!result) {NSLog(数据删除失败);} else {NSLog(数据删除成功);}[self.collectionDatabase close];} }数据库查询数据 //查询数据 - (void)queryData {if ([self.collectionDatabase open]) {FMResultSet* resultSet [self.collectionDatabase executeQuery:SELECT * FROM collectionData];while ([resultSet next]) {NSString *mainLabel [resultSet stringForColumn:mainLabel];NSLog(mainLabel %,mainLabel);NSString *nameLabel [resultSet stringForColumn:nameLabel];NSLog(nameLabel %,nameLabel);NSString *imageURL [resultSet stringForColumn:imageURL];NSLog(imageURL %,imageURL);NSString *networkURL [resultSet stringForColumn:networkURL];NSLog(networkURL %,networkURL);NSString *dateLabel [resultSet stringForColumn:dateLabel];NSLog(dateLabel %,dateLabel);NSString *nowLocation [resultSet stringForColumn:nowLocation];NSLog(nowLocation %,nowLocation);NSString *goodState [resultSet stringForColumn:goodState];NSLog(goodState %,goodState);NSString *collectionState [resultSet stringForColumn:collectionState];NSLog(collectionState %,collectionState);NSString *id [resultSet stringForColumn:id];NSLog(id %,id);}[self.collectionDatabase close];} }三、点赞和收藏的持久化 要实现点赞和收藏的持久化就需要用到前面所提到的FMDB库进行操作。在需要用到数据库的部分进行数据库的创建和一些基本操作例如增删改查。以收藏持久化为例子当点击点赞收藏按钮的时候进入到数据库查询函数进行查询如果找到就将该数据进行删除然后将按钮状态设置为未选中状态。如果没有找到该数据就进行添加然后将按钮状态设置为选中状态 - (void)pressCollect:(UIButton*)button {NSString* collectionIdStr [NSString stringWithFormat:%ld, self.idStr];int flag [self queryCollectionData];if (flag 1) {self.mainWebView.collectButton.selected NO;[self deleteCollectionData:collectionIdStr];} else {self.mainWebView.collectButton.selected YES;[self insertCollectionData:self.mainLabel andUrl:self.imageUrl andStr:collectionIdStr];} } 当滑动切换页面请求新闻额外信息时也需要先进行判断当前点赞和收藏的按钮状态 [[ExtraManager sharedSingleton] ExtraGetWithData:^(GetExtraModel * _Nullable extraModel) {dispatch_async(dispatch_get_main_queue(), ^{int flag [self queryLikesData];int collectFlag [self queryCollectionData];self.mainWebView.discussLabel.text [NSString stringWithFormat:%ld, extraModel.comments];self.mainWebView.likeLabel.text [NSString stringWithFormat:%ld, extraModel.popularity];self.longComments extraModel.long_comments;self.shortComments extraModel.short_comments;if (flag 1) {self.mainWebView.likeButton.selected YES;NSInteger likesNum [self.mainWebView.likeLabel.text integerValue];likesNum;self.mainWebView.likeLabel.text [NSString stringWithFormat:%ld, likesNum];NSString* likesIdStr [NSString stringWithFormat:%ld, self.idStr];[self insertLikesData:likesIdStr];} else {self.mainWebView.likeButton.selected NO;}if (collectFlag 1) {self.mainWebView.collectButton.selected YES;} else {self.mainWebView.collectButton.selected NO;}NSLog(额外信息获取成功);});} andError:^(NSError * _Nullable error) {NSLog(额外信息获取失败);} andIdStr:self.idStr];收藏数据库部分代码如下 //创建 - (void)databaseInit {NSString* likesDoc [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];NSLog(%, likesDoc);NSString * likesFileName [likesDoc stringByAppendingPathComponent:likesData.sqlite];self.likesDatabase [FMDatabase databaseWithPath:likesFileName];if ([self.likesDatabase open]) {BOOL result [self.likesDatabase executeUpdate:CREATE TABLE IF NOT EXISTS likesData (id text NOT NULL);];if (result) {NSLog(创表成功);} else {NSLog(创表失败);}}NSString* collectionDoc [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];NSLog(%, collectionDoc);NSString * collectionFileName [collectionDoc stringByAppendingPathComponent:collectionData02.sqlite];self.collectionDatabase [FMDatabase databaseWithPath:collectionFileName];if ([self.collectionDatabase open]) {BOOL result [self.collectionDatabase executeUpdate:CREATE TABLE IF NOT EXISTS collectionData (mainLabel text NOT NULL, imageURL text NOT NULL, id text NOT NULL);];if (result) {NSLog(创表成功);} else {NSLog(创表失败);}}} //增加 - (void)insertCollectionData:(NSString *)mainLabel andUrl:(NSString *)imageURL andStr:(NSString*)string {if ([self.collectionDatabase open]) {BOOL result [self.collectionDatabase executeUpdate:INSERT INTO collectionData (mainLabel, imageURL, id) VALUES (?, ?, ?);, mainLabel, imageURL,string];if (!result) {NSLog(增加收藏数据失败);}else{NSLog(增加收藏数据成功);}}[self.collectionDatabase close]; } //删除 - (void)deleteCollectionData:(NSString*)string {if ([self.collectionDatabase open]) {NSString *sql delete from collectionData WHERE id ?;BOOL result [self.collectionDatabase executeUpdate:sql, string];if (!result) {NSLog(删除收藏数据失败);}else{NSLog(删除收藏数据成功);}}[self.collectionDatabase close]; }//查询 - (int)queryCollectionData {if ([self.collectionDatabase open]) {FMResultSet* collectionResultSet [self.collectionDatabase executeQuery:SELECT * FROM collectionData];int count 0;while ([collectionResultSet next]) {NSString *sqlIdStr [NSString stringWithFormat:%, [collectionResultSet objectForColumn:id]];NSInteger sqlId [sqlIdStr integerValue];NSLog(第 %d 个收藏数据库数据%ld, count ,sqlId);if (self.idStr sqlId) {[self.collectionDatabase close];return 1;}}}[self.collectionDatabase close];return 0; }
http://www.lebaoying.cn/news/18539.html

相关文章:

  • 江苏省城乡与建设厅网站首页软件开发流程图绘制
  • 合肥seo整站优化理发培训专业学校
  • 餐饮网站开发wordpress主题带会员中心
  • 网站备案服务码口令是什么意思沈阳优化网站关键词
  • 做哪些网站可以赚钱的深圳建外贸网站公司
  • 学做陶艺作品的网站seo优化报价
  • 怎么利用源码做网站沈阳哪有wordpress
  • 网站建设资料 优帮云做词做曲网站
  • 帝国cms 网站搬家wordpress显示代码框
  • 网站建设的入门书籍已有域名怎么做网站
  • 深圳建站网站网站公司快速搭建网站信息库
  • 惠东网站建设正规手游代理平台有哪些
  • 网站开发教学视频教程广州医院网站建设
  • 品牌建设+网站智慧团建网站入口pc端
  • 网站开发晋升空间 路径网站建设与实践
  • 程序员和做网站那个好找工作宁波网站搭建
  • 甘肃网站排名公司上海专业网站建设公司站霸网络
  • 网站开发 动易c做网站教程
  • 辛集市住房和城乡建设局网站江西中国建设银行网站首页
  • 手机建站系统源码视频网站开发步骤
  • 网站建设 价格低安康市有没有滴滴平台
  • 网站开发的招标参数网站建设设计多少钱
  • 山东住房建设厅官网站首页南京seo报价
  • 中卫网站建设公司杭州排名优化软件
  • 网站后台 英语制作网页与网站
  • 嘉兴网站优化排名大连推广
  • 一个公网ip可以做几个网站网站建设哪家最好用
  • 做网站和游戏是如何赚钱免费源码交易网站源码
  • 谁专门做网站安全维护在手机上开发app
  • 技术支持 东莞网站建设电脑回收甘肃园区网络搭建