0

我正在尝试将视图上的标签旋转 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];
4

2 回答 2

1

可能只是视图的边界对于文本来说太小了。当文本无法在 iOS 的标签视图中完全显示时,它会简单地消失,而不是继续显示。也许这是一项蓄意的 Apple 政策,以防止应用程序附带剪切的文本并强制开发人员进行修复;)

这听起来很像是正在发生的事情。您说过文本在旋转时会变小,这表明您在标签视图上设置了适合属性的缩小文本。随着约束视图的尺寸减小,这将缩小文本。但是文本在消失之前只会缩小这么多。

如果标签视图本身看起来足够大,还请务必检查包含标签的每个父视图的边界,直至整个视图层次结构。

于 2013-01-12T13:02:23.103 回答
1

我不是 100% 确定它是否有效,但你为什么不使用M_PI_2. 这只是您假设的简单想法,Value of Pi3.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];

您还可以查看这些问题的答案:

如何渲染旋转的 UIlabel

在其中心旋转 UILabel

希望对您有所帮助。

于 2013-01-12T09:27:02.160 回答