ios - 您如何将 UITextView 作为 UIView 的 subview 居中?

标签 ios objective-c uitextview

我有一个位于 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。我是说

enter image description here

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

看看 Moving views with constraints 设置自动布局约束。

关于ios - 您如何将 UITextView 作为 UIView 的 subview 居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539121/

相关文章:

ios - 如何在 iPhone 中快速重播通知,如 whats app 或 iMessage?

ios - ScrollsToTop 功能在 iOS9 中无法正常工作

ios - 渲染一个任意大的 NSAttributedString

ios - 获取UITextView中链接的文本范围

ios - 根据其包含的 UITextView 调整 UITableViewCell 的大小

ios - 在构建时将 key 添加到 plist

ios - 如何在 iOS 10 通知中获取应用程序状态?

android - 将数据广播到 Flutter 中的多个小部件

iphone - 当我确实需要使用 [NSThread sleepForTimeInterval :1];

iphone - 在 UITextView 中调整字体大小