iOS - 尝试旋转文本标签并且标签消失
Posted
技术标签:
【中文标题】iOS - 尝试旋转文本标签并且标签消失【英文标题】:iOS - trying to rotate a text label and the label disappears 【发布时间】:2013-01-12 08:19:32 【问题描述】:我正在尝试将视图上的标签旋转 90 度。我尝试了以下两种方法,标签就从屏幕上消失了。我三次检查属性是否正确附加。有什么想法吗?
尝试一:
// rotating labels 90 degrees
self.labelCloseScroll.transform = CGAffineTransformMakeRotation (3.14/2);
尝试二:
CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2);
rotate = CGAffineTransformScale(rotate, 1, 1);
[self.labelCloseScroll setTransform:rotate];
【问题讨论】:
它的工作.. 旋转 180 度。您希望它在完成旋转后消失吗? 3.14/2 将您的标签旋转 90 度而不是 180 度,并且转换围绕其中心旋转视图。所以标签的大小很重要。你放 NSLog 来查看标签的新位置了吗 在这种情况下,请尝试少量旋转标签。然后您可能会看到标签出于某种原因围绕一个奇怪的中心点旋转(这可能是它在旋转 180 度时消失的原因)。 好的,我减少了旋转量,我可以看到屏幕上的标签self.labelCloseScroll.transform = CGAffineTransformMakeRotation (3.14/10);
旋转了一点但变形了。每次将数字减小 1 会使文本旋转得更远一些,并且看起来越来越被挤压(在奇怪的轴上旋转?)。当我到达(3.14/5)
时,标签已经消失了。
次要注意,但您应该使用M_PI
作为 pi 的更准确表示。
【参考方案1】:
我不能 100% 确定它是否有效,但你为什么不使用 M_PI_2
。只是简单地认为您假设 Value of Pi
是 3.14
但确切的值是 3.14159...
我是这样做的,效果很好:
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 50, 70)];
lbl.text = @"New";
lbl.backgroundColor = [UIColor clearColor];
lbl.textColor = [UIColor whiteColor];
lbl.highlightedTextColor = [UIColor blackColor];
lbl.font = [UIFont systemFontOfSize:12];
lbl.transform = CGAffineTransformMakeRotation(M_PI_2);
[self.view addSubview:lbl];
您还可以查看这些问题的答案:
How to Render a rotated UIlabel
Rotating UILabel at its center
希望对你有所帮助。
【讨论】:
这行得通?!?labelCloseScroll.transform = CGAffineTransformMakeRotation(M_PI_2);
(M_PI_2) 做什么而 (3.14/2) 没有? M_PI_2 = 1.57079632679489661923132169163975144 或 pi/2。我的方法不太准确,但我不明白反应?
作为我去 M_PI_4 时的旁注,文本再次消失了。我可以使用 M_PI_2,但我仍然想知道它为什么会这样......
附注 2,当我使用您的直接代码示例而不是我的合成标签时,它一直工作正常。认为可能有一些我无法弄清楚的隐藏约束。
使用 M_PI_2 而不是 3.14/2 应该没有区别。最有可能的问题是旋转导致标签旋转离开屏幕。您可能会在这里找到您的解决方案:***.com/questions/6160519/…【参考方案2】:
这可能只是视图的边界对于文本来说太小了。当文本无法在 ios 的标签视图中完全显示时,它会简单地消失,而不是继续显示。也许这是一项蓄意的 Apple 政策,以防止应用程序附带剪辑文本并强制开发人员进行修复;)
听起来很像是正在发生的事情。您说过文本在旋转时会变小,这表明您在标签视图上设置了适合属性的缩小文本。随着约束视图的尺寸减小,这将缩小文本。但是文字在消失之前只会缩小这么多。
如果标签视图本身看起来足够大,请务必检查包含标签的每个父视图的边界,直至整个视图层次结构。
【讨论】:
以上是关于iOS - 尝试旋转文本标签并且标签消失的主要内容,如果未能解决你的问题,请参考以下文章
如何使用javascript在plotly中旋转数据点的文本标签
带有图像视图、2 个标签、按钮的自动布局 - 标签在旋转后消失