gpt4 book ai didi

ios - 试图在其 super View 中居中 View

转载 作者:行者123 更新时间:2023-12-01 20:03:52 24 4
gpt4 key购买 nike

我正在创建一个类别 UIView使以编程方式定位和调整我的 View 更容易。我想创建一个将给定 View 水平或垂直居中的方法 superview .所以我可以执行以下操作:

分类

- (void)centerHorizontally {
self.center = CGPointMake(self.window.superview.center.x, self.center.y);
}

- (void)centerVertically {
self.center = CGPointMake(self.center.x, self.window.superview.center.y);
}

使用
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];
[v centerHorizontally];

但是,这似乎不起作用。我的解决方案有什么不正确之处?

最佳答案

您需要先将 View 添加到父 View ,然后才能将其居中。

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];
[someOtherView addSubview:v];
[v centerHorizontally];

而且您的类别不正确。不要涉及窗口。您需要基于 super View 的大小:
- (void)centerHorizontally {
self.center = CGPointMake(self.superview.bounds.size.width / 2.0, self.center.y);
// or
self.center = CGPointMake(CGRectGetMidX(self.superview.bounds), self.center.y);
}

- (void)centerVertically {
self.center = CGPointMake(self.center.x, self.superview.bounds.size.height / 2.0);
// or
self.center = CGPointMake(self.center.x, CGRectGetMidY(self.superview.bounds));
}

关于ios - 试图在其 super View 中居中 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com