我正在尝试将视图上的标签旋转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];
答案 0 :(得分: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
希望它对你有所帮助。
答案 1 :(得分:1)
可能只是视图的边界对于文本来说太小了。当文本无法在iOS的标签视图中完全显示时,它只会消失,而不是保持显示。也许这是一个故意的Apple政策,以防止应用程序通过剪辑文本和迫使开发人员修复;)
听起来好像这就是正在发生的事情。您已经说过旋转它时文本会变小,这表示您有缩放文本以适应标签视图上设置的属性。当约束视图的大小减小时,这将缩小文本。但是文本在消失之前只会缩小很多。
如果标签视图本身看起来足够大,还要确保检查标签所包含的每个父视图的边界,直到视图层次结构。