AsyncDisplayKit:对于短文本,sizeToFit不起作用。
创始人
2024-09-21 02:30:44
0

在使用AsyncDisplayKit进行界面布局时,对于短文本(不超过一个ASDisplayNode的大小)使用sizeToFit方法可能不会起作用。这是因为AsyncDisplayKit在布局计算过程中,会自动为ASDisplayNode分配最小的尺寸,并根据内容的大小进行调整。因此,可以通过以下两种方法解决该问题:

  1. 使用setUsesImplicitHierarchyManagement方法,将ASDisplayNode的usesImplicitHierarchyManagement属性设置为YES。这样,AsyncDisplayKit会自动计算ASDisplayNode的尺寸,并根据内容进行调整。代码示例如下:
ASDisplayNode *textNode = [[ASDisplayNode alloc] init];
textNode.usesImplicitHierarchyManagement = YES;
textNode.style.width = ASDimensionAuto;
textNode.style.height = ASDimensionAuto;
textNode.attributedText = [[NSAttributedString alloc] initWithString:@"Short Text"];
[self.view addSubnode:textNode];
  1. 手动计算ASDisplayNode的尺寸,并设置给style属性。可以使用measureWithSizeRange:方法来计算ASDisplayNode内容的尺寸,并将得到的尺寸设置给style属性。代码示例如下:
ASDisplayNode *textNode = [[ASDisplayNode alloc] init];
textNode.style.width = ASDimensionAuto;
textNode.style.height = ASDimensionAuto;
textNode.attributedText = [[NSAttributedString alloc] initWithString:@"Short Text"];

CGSize textSize = [textNode measureWithSizeRange:ASSizeRangeMake(CGSizeZero, CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX))];
textNode.style.width = ASDimensionMake(textSize.width);
textNode.style.height = ASDimensionMake(textSize.height);

[self.view addSubnode:textNode];

这样,无论文本内容的长度如何,都可以正确地显示并布局ASDisplayNode。

相关内容

热门资讯

玩家必看攻略"同乡有... 玩家必看攻略"同乡有辅助"开挂(透视)约局吧辅助器(揭秘有挂);亲,有的,ai轻松简单,又可以获得无...
科技辅助!wepoker轻量版... 科技辅助!wepoker轻量版透视系统,微信边锋辅助软件,开挂(透视)辅助软件(存在有挂);是一款可...
开挂辅助!微信雀神挂件开挂辅助... 开挂辅助!微信雀神挂件开挂辅助,菠萝德普辅助器免费版在哪里(透视)开挂辅助插件(有挂细节);人气非常...
盘点一款"德普之星辅... 盘点一款"德普之星辅助器"开挂(透视)智星德州插件2024最新版(有挂技巧);德普之星辅助器是一项德...
总算了解"牵手游戏辅... 总算了解"牵手游戏辅助软件"开挂(透视)约局吧怎么看有没有挂(的确有挂);是一款可以让一直输的玩家,...
辅助开挂!堆金城陕西辅助器,w... 辅助开挂!堆金城陕西辅助器,wepoker看底牌(透视)开挂辅助工具(有挂神器);1.堆金城陕西辅助...
辅助开挂!辅助软件购买平台,红... 辅助开挂!辅助软件购买平台,红龙poker有辅助吗(透视)开挂辅助安装(发现有挂);相信小伙伴都知道...
辅助开挂!哥哥游戏辅助神器,w... 辅助开挂!哥哥游戏辅助神器,wepoker买钻石有用吗(透视)开挂辅助软件(有挂技术);一、哥哥游戏...
盘点开挂!wepoker养号规... 盘点开挂!wepoker养号规律,越悦游戏字牌攻略,开挂(透视)辅助工具(有挂辅助);大家肯定在之前...
辅助开挂!老友广西app下载安... 辅助开挂!老友广西app下载安装,hhpkoer辅助器视频(透视)开挂辅助工具(有挂分析);1、点击...