我有一个位于 UIView 中的 UITextView。我设法使用以下代码将 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)];
谢谢
最佳答案
你需要在这里做一些数学计算。
Center = (superView.size / 2) - (subView.size / 2);
所以你必须将 superview.size(宽度和高度)除以 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 设置自动布局约束。
关于ios - 您如何将 UITextView 作为 UIView 的 subview 居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539121/