ios-coreText做微信点赞功能

coretext绘制 个人理解为

一个CTFrame有几个CTLine组成,有几行文字就有几行CTLine。一个CTLine有包含多个CTRun,一个CTRun是所有属性都相同的那部分富文本的绘制单元。所以CTRun是CTFrame的基本绘制单元

资料博客链接地址:http://www.jianshu.com/p/6db3289fb05d

计算绘制的coreText内容的高度

+ (int)getAttributedStringHeightWithString:(NSAttributedString *)string  WidthValue:(int)width

{

int total_height = 0;

CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)string);    //string 为要计算高度的NSAttributedString

CGRect drawingRect = CGRectMake(0, 0, width, 1000);  //这里的高要设置足够大

CGMutablePathRef path = CGPathCreateMutable();

CGPathAddRect(path, NULL, drawingRect);

CTFrameRef textFrame = CTFramesetterCreateFrame(framesetter,CFRangeMake(0,0), path, NULL);

CGPathRelease(path);

CFRelease(framesetter);

NSArray *linesArray = (NSArray *) CTFrameGetLines(textFrame);

CGPoint origins[[linesArray count]];

CTFrameGetLineOrigins(textFrame, CFRangeMake(0, 0), origins);

int line_y = (int) origins[[linesArray count] -1].y;  //最后一行line的原点y坐标

CGFloat ascent;

CGFloat descent;

CGFloat leading;

CTLineRef line = (__bridge CTLineRef) [linesArray objectAtIndex:[linesArray count]-1];

CTLineGetTypographicBounds(line, &ascent, &descent, &leading);

total_height = 1000 - line_y + (int) descent +1;    //+1为了纠正descent转换成int小数点后舍去的值

CFRelease(textFrame);

return total_height;

}

时间: 2024-11-05 07:03:51

ios-coreText做微信点赞功能的相关文章

如何在ios中集成微信登录功能

在ios中集成微信的登录功能有两种方法 1 用微信原生的api来做,这样做的好处就是轻量级,程序负重小,在Build Settings 中这样设置 然后设置 友盟的设置同上,但是要注意,加入你需要的所有框架到应用程序中

微信点赞功能测试用例

测试用例: ①点赞和取消点赞功能 ②点赞是否按时间顺序显示 ③点赞是否正确显示昵称或备注 ④点赞之后是否还能评论 ⑤弱网络的情况下点赞能否实时更新 ⑥点赞时有短信或电话进来,能否显示点赞情况 ⑦点赞的人是否在可见分组里 ⑧点赞之后共同好友的点赞和评论是否会提醒你 原文地址:https://www.cnblogs.com/shallwebegin/p/11621991.html

IOS开发-项目实战-点赞功能的实现

实现思路: 1.每一条新闻就是一个cell,在cell上添加点赞按钮. 2.让cell的控制器成为自定义cell的代理,将点击了哪一个cell放在代理方法中传出去. 3.并将这条新闻的ID和当前用户的ID上传服务器. 4.此时要考虑每个用户只能点击一次,且当用户再次点击的时候,取消点赞(定义一个BOOL变量存储用户的点击次数).则将上传的数据取出来,做判断,如果取出来有数据,说明用户点击过,没有数据那就存储到网络.再次点击,将请求下来的数据,即BOOL变量存储为NO,即取消点赞. 5.到这里就要

iOS 9推广告屏蔽功能,移动营销界也做了哪些动作?(转)

观察数字营销行业发展历程可以看出,每一种新广告形式.新产品刚被市场发现之时,就是蕴含价值量最大的时候,如同未被挖掘的金矿一样.网盟.积分墙.广点通.热搜,最早敢于吃这些“螃蟹”的人到后来都赚得盆满钵满而功成身退. 但也有些产品出来后,则会给市场和企业带来致命的威胁,如最近苹果iOS 9推出广告屏蔽功能. 今天Fmarketing就为大家搜罗了数字营销界最近新出的产品和推广方式,让大家防患于未然的同时抓住机会,看谁能够先胆大心细抢占山头,圈一块地.分一杯羹了. 苹果iOS 9推出广告屏蔽功能:应用

cocos2d-x集成sharesdk做微信分享android,ios

白白手游专栏http://blog.csdn.net/u010229677 这些天做了一下cocos2d-x的微信分享功能,稍有心得,整理了一下,出了个文档,欢迎大家点击查看 http://download.csdn.net/detail/u010229677/7867383

iOS高仿微信完整源码,网易爱玩APP源码等

iOS精选源码 iOS一种弹出视图效果带动画 一个快速便捷.无侵入.可扩展的动画弹框库 高仿Elk - 旅行货币转换器 iOS内分享的界面.功能一体化解决方案 使用Olami sdk实现一个语音查询股票的iOS程序 iOS高仿微信完整项目源码 分段绘制折线指示图, 点击效果 最新环信推送封装 v3.0[附代码] 仿照网易爱玩APP APP启动视频 iOS优质博客 iOS 一行代码搞定 KVO 前言发现好久没有研究.学习iOS优秀开源代码,现在大部分时间都在写业务代码, 学习其他语言及一些杂七杂八

ios应用接入微信开放平台

前几天试了一下服务端接入微信公众平台,昨天又看了一下APP接入开放平台 开放平台和公众平台的差别 公众平台针对的是公众账号,除了提供管理后台之外.也开放了若干接口,让微信server和开发人员自己的应用系统可以对接 开放平台是微信的总体接入方式.不局限于公众账号(订阅号,服务号).移动APP和web应用也能够通过开放平台.实现与微信对接.能够说,公众平台的API部分,是开放平台的一个子集 开放平台大体上分为3个部分.分别针对移动APP,WEB应用.公众账号的接入 移动APP接入开放平台的作用 眼

安卓版微信开启测试 接入微信运动功能

近日,安卓版微信内测活动已经开启,用户可通过微信团队邀请下载体验.在新版本中最令人关注的即是接入了微信运动功能,除此之外还增加了二维码收钱,小视频稍后分享,多条聊天记录可合并转发,以及可设置微信字体大小等功能. iOS版微信运动 使用微信运动需关注“微信运动”官方账号,除了显示每日行走步数之外,还可和其他好友进行PK或为他人点赞,排行榜将展示获取第一名的用户所设置的背景,以此来提升成就感. 微信运动在iOS版微信中早已实现,iPhone 5s.iPhone 6以及iPhone 6Plus三款机型

应该怎么做一个登录功能?

版权是我的,转载没有通过我的同意的爬虫都是傻逼. 假设有user表.里面有id,acount(账户,nvarchar(50)),pwd(密码,nvarchar(50)). 最简单的实现 渣渣说做个登录功能,那还不简单. select * from user where  acount=XX AND PWD =YY; 然而,某天,我们需要在登录的时候更新最后登录时间,也就是在user表里面加个lastLoginTime. 这时渣渣说 select id from user wher acount=