objective-c uiview cgrect

objective c - CGRectGetWidth vs CGRect.size.width



objective-c uiview (2)

CGRectGetWidth / Height normalizará el ancho o la altura antes de devolverlos. La normalización es básicamente verificar si el ancho o la altura es negativo, y negarlo para que sea positivo si es así.

Respondido aqui

¿Cuál es mejor usar? Prefiero CGRect.size.width porque se ve mejor. Pero, mi colega dice que CGRectGetWidth es mejor.


El ancho y la altura de un rect pueden ser negativos. No tengo idea de cuándo esto sería cierto en la práctica, pero según los documentos de Apple :

CGGeometry Reference define estructuras para primitivas geométricas y funciones que operan sobre ellas. La estructura de datos CGPoint representa un punto en un sistema de coordenadas bidimensional. La estructura de datos CGRect representa la ubicación y las dimensiones de un rectángulo. La estructura de datos CGSize representa las dimensiones de ancho y alto.

La altura y el ancho almacenados en una estructura de datos CGRect pueden ser negativos. Por ejemplo, un rectángulo con un origen de [0.0, 0.0] y un tamaño de [10.0,10.0] es exactamente equivalente a un rectángulo con un origen de [10.0, 10.0] y un tamaño de [-10.0, -10.0]. Su aplicación puede estandarizar un rectángulo, es decir, asegurarse de que la altura y el ancho se almacenen como valores positivos, llamando a la función CGRectStandardize. Todas las funciones descritas en esta referencia que toman las estructuras de datos de CGRect como entradas estandarizan implícitamente esos rectángulos antes de calcular sus resultados. Por este motivo, sus aplicaciones deben evitar leer y escribir directamente los datos almacenados en la estructura de datos de CGRect. En su lugar, use las funciones descritas aquí para manipular rectángulos y recuperar sus características.