美文网首页
高仿微信朋友圈

高仿微信朋友圈

作者: Diankun | 来源:发表于2017-06-28 16:10 被阅读0次

       最近几天公司的项目正好涉及到仿写微信朋友圈的tableview,一款扫描二维码条形码的APP,可以对商品进行评论,删除评论,上传图片等功能。开发一周完成后,就看了一下网上别人写的微信朋友圈的demo,在GitHub上一搜,排名第一位的是GSD_weixin。本文是以模仿gsd_weixin的写法,介绍一些开发中遇到的问题和技术点,代码中写了大量的注释,希望对新手入门oc开发有一定的帮助。


上传几张截图

1. 设置状态栏字体颜色

在info.plist中,将View controller-based status bar appearance设为NO

在app delegate中:[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

如果View controller-based status bar appearance为YES。

则[UIApplication sharedApplication].statusBarStyle 无效。

2.滑动流畅技巧

本项目使用SDAutoLayout对tableviewCell进行高度计算

//实现cell的缓存,tableview滑动更加顺畅

[cell useCellFrameCacheWithIndexPath:indexPath tableView:tableView];

//计算cell高度

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

id model = self.dataArray[indexPath.row];

return [self.tableView cellHeightForIndexPath:indexPath model:model keyPath:@"model" cellClass:[TimeLineCellTableViewCell class] contentViewWidth:DeviceWidth];

}

3.布局控件

使用SDAutoLayout对控件添加约束进行布局,注意:

“更多”和“收起”button的高度需要在setModel方法中设置,九宫格图片imageView已经在内部实现宽度和高度自适应所以不需要再设置宽度高度,top值是具体有无图片在setModel方法中设置。

评论的背景图是一张图片,通过按比例拉伸,形成截图里这种效果,注意:

//stretchableImageWithLeftCapWidth: 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。

UIImage *bgImage = [[UIImage imageNamed:@"LikeCmtBg"] stretchableImageWithLeftCapWidth:40 topCapHeight:30];

判断是否显示“更多”、“收起” button,注意:

在TimeLineModel.m文件中声明msgContent,并且计算msgContent的Size,从而判断textRect.size.height的高。决定是否显示“更多”、“收起” button。

 

4.extern、static、const区别

extern引用变量,extern具备与.h文件很相似的跨文件访问的功能;

extern声明,仅适于修饰全局变量,不能去修饰其他的变量。一般情况下默认,定义的全局变量都带有extern。

const是用来修饰常量的

static修饰全局变量

注意:

extern与const组合:只需要定义一份全局变量,多个文件共享。并且全局常量只被定义一次,分配一次内存空间。


总结:本文简单介绍了在仿写朋友圈demo中的一些注意点,里面许多的判断,block, delegate的使用,适合新手学习。

源码下载地址:https://github.com/wdkwudiankun/WeiXin_wdk



相关文章

网友评论

      本文标题:高仿微信朋友圈

      本文链接:https://www.haomeiwen.com/subject/bauucxtx.html