我有一个UITextView在UIView中。我设法使用以下代码集中UITextView:
self.textView.textAlignment = NSTextAlignmentCenter;
现在,文本是UITextView的中心,但我也希望将UITextView置于UIView中。
我怎样才能做到这一点?
我尝试过以下代码,但似乎什么也没做。
[self.textView setCenter:CGPointMake(self.topView.frame.size.width/2 - self.textView.frame.size.width/2, self.topView.frame.size.height/2)];
由于
答案 0 :(得分:2)
你需要在这里做一些数学计算。
Center =(superView.size / 2) - (subView.size / 2);
所以你必须将superview.size(width& height)除以2,使它变成一半大小。然后将subview.size除以一半以调整帧中心点。
见下面的代码适合你。
CGFloat centerX = (self.topView.frame.size.width / 2) - (self.textView.frame.size.width / 2);
CGFloat centerY = (self.topView.frame.size.height / 2) - (self.textView.frame.size.height / 2);
CGRect rect = self.textView.frame;
rect.origin.x = centerX;
rect.origin.y = centerY;
[self.textView setFrame:rect];
确保对应用程序禁用AutoLyout
。我的意思是
但是如果你支持自动布局,那么这将不起作用。为此,您必须在textView上为位置x和位置y设置约束。
查看 Moving views with constraints 以设置自动布局限制。
答案 1 :(得分:1)
尝试
[self.textView setTextAlignment:NSTextAlignmentCenter];
[self.textView setCenter:self.topView.center];