Objective c Xcode标签未居中

Objective c Xcode标签未居中,objective-c,xcode,uiscrollview,position,uilabel,Objective C,Xcode,Uiscrollview,Position,Uilabel,以编程方式创建滚动视图,然后添加标签 scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)]; [self.view addSubview:scrollView]; 然后标签 UILabel *errLabel = [[UILabel alloc] init]; errLabel.text = @"Top

以编程方式创建滚动视图,然后添加标签

scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)];

[self.view addSubview:scrollView];
然后标签

UILabel *errLabel = [[UILabel alloc] init];
errLabel.text = @"Top Label";
//errLabel.frame = CGRectMake(self.view.frame.size.width/2,50,120,20);
errLabel.frame = CGRectMake(CGRectGetWidth(scrollView.frame)/2.00,50,120,20);
errLabel.textAlignment = NSTextAlignmentCenter;
errLabel.layer.borderColor = [UIColor grayColor].CGColor;
errLabel.layer.borderWidth = 3.0;
[errLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
[scrollView addSubview:errLabel];

在iPhone 8、11 Pro Max和最大的iPad的模拟器中,标签位于中间右侧。这是iOS 11错误还是我遗漏了什么?

这是因为您为标签创建帧的方式是从滚动视图的中点开始的

这将偏移起始X点以使标签居中:

errLabel.frame = CGRectMake(CGRectGetWidth(scrollView.frame)/2.00 - 60,50,120,20)

PS-插入我的iPhone并在其上进行测试-仍然位于中间位置…谢谢。添加'-60'(标签120帧宽度的一半)并将其居中。您还可以创建一个约束,以确保无论标签上的文本长度如何,它都保持在中心<代码>[[errLabel.centerXAnchor constraintEqualToAnchor:self.scrollView.centerXAnchor]设置活动:是]如中所述: