首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS Swift - CGSizeFromString throws

iOS Swift - CGSizeFromString throws
EN

Stack Overflow用户
提问于 2015-03-23 20:28:26
回答 2查看 3.2K关注 0票数 0

我有一个函数,用于根据字符串长度来设置大小。就像那样- Swift iOS - Tag collection view

categoriesItems的第一项是“年龄”

代码语言:javascript
复制
func collectionView(collectionView: UICollectionView,
    layout collectionViewLayout: UICollectionViewLayout,
    sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        var cellWidth : CGSize = CGSizeFromString(self.categoriesItems[indexPath.row].name);

        return cellWidth
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-23 20:39:41

若要确定文本的宽度,请使用以下代码

代码语言:javascript
复制
let text = self.categoriesItems[indexPath.row].name
let rect = text.boundingRectWithSize(constraintSize, options: NSStringDrawingOptions.UsesFontLeading, attributes: [NSFontAttributeName : UIFont.systemFontOfSize(17)], context: nil)
return rect.size.width

其中,constraintSize是您希望约束文本的任意大小。

票数 1
EN

Stack Overflow用户

发布于 2015-03-23 20:46:23

您可以使用NSStringsizeWithAttributes函数来完成这一任务。然后将其转换为CGSize。这个大小是文本的大小,所以如果您想要在它周围填充,只需在大小的宽度和高度上添加一个值:

代码语言:javascript
复制
let string: NSString = self.categoriesItems[indexPath.row].name
let size: CGSize = string.sizeWithAttributes(nil) // Enter font/size attributes here
return size
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29219739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档