gpt4 book ai didi

ios - 理解 subview.center = view.center 是如何工作的以及为什么 getter 和 setter 做不同的事情

转载 作者:可可西里 更新时间:2023-11-01 06:22:11 26 4
gpt4 key购买 nike

我看到很多代码解释了如何在 View 中居中 subview 。代码示例通常是这样的:

SubView.center = view.center;

有人可以向我解释一下这是如何工作的吗?我就是不明白。

view.center 给出 View 的中心点。例如宽度为100,高度为100,它会返回(50,50)。我明白了。

设置 subview.center 对我来说很奇怪。 subview.center 将返回 subview 的中心点。不知何故,将其设置为 (50,50) 会将其父 View 中的 subview 定位到 50/50 的坐标。但是如果 subview 本身的宽度为 50 且高度为 50,则访问此属性将返回 (25,25)。

明白我的意思吗?这里的概念对我来说很奇怪,因为 setter 和 getter 执行不同的功能。

如果有人可以解释这一点,请做。或者,如果我离基地很远,我也想知道。我是 iOS 开发新手。

如果我是正确的并且这确实是它的工作方式,您会不会认为这是一种反模式。当然,在 .NET 中,类似这样的东西将是一种反模式。也许不适用于 Obj-C?

最佳答案

在一个 View 中居中一个 subview 。我认为以下代码是正确的。

swift 3.0:

SubView.center = CGPoint(x: view.bounds.midX, y: view.bounds.midY );

swift 2.2:

SubView.center = CGPointMake( CGRectGetMidX( view.bounds ), CGRectGetMidY( view.bounds ) );

关于ios - 理解 subview.center = view.center 是如何工作的以及为什么 getter 和 setter 做不同的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14648062/

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