¿Hay un acceso directo para (self.frame.origin.y + self.frame.size.height)?

Escribo demasiado de este código:

self.frame.origin.y + self.frame.size.height 

¿Hay un atajo para esto? Algo como self.frame.y_plus_height ?

Si los hay, no estoy seguro de si son buenas noticias o malas noticias para todas las veces que escribí la oración completa.

Esto debería funcionar:

 CGFloat res = CGRectGetMaxY(self.frame); 

La documentation se puede encontrar aquí .

EDITAR: de acuerdo con la explicación de rob Mayoff (ver comentarios) esto es un poco más costoso que simplemente sumr origin.y + size.height . origin.y + size.height en el código.

Hay una gran categoría en UIView creada por nfarina .

Compruébelo aquí .

Usando esta categoría, puede get el "máximo Y" o "inferior" de una vista como esta (donde self es una vista):

 CGFloat maxY = self.$bottom; 

Esta categoría es realmente increíble porque también te permite establecer fácilmente las properties del marco. En el ejemplo, para mover la vista hacia la derecha a 3 puntos, puede hacer esto:

 self.$x += 3.0f; 

Me doy count de que esto es pedir Objective-C, pero para aquellos que usan Swift y tropiezo con esta pregunta, puede crear una extensión CGRect:

 extension CGRect { func maxYinParentFrame() -> CGFloat { return self.origin.y + self.size.height } } 

A continuación, puede usarlo en cualquier lugar.

 let mySize = myView.frame.maxYinParentFrame()