你如何将UITextView作为UIView的子视图集中?

时间:2014-12-18 04:12:43

标签: ios objective-c uitextview

我有一个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)];

由于

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。我的意思是

enter image description here

但是如果你支持自动布局,那么这将不起作用。为此,您必须在textView上为位置x和位置y设置约束。

查看 Moving views with constraints 以设置自动布局限制。

答案 1 :(得分:1)

尝试

[self.textView setTextAlignment:NSTextAlignmentCenter];
[self.textView setCenter:self.topView.center];