TL; DR
Zastosowanie funkcji UIEdgeInsetsInsetRect(theRect, theInsets)
.
Przykład
// CGRectMake takes: left, bottom, width, height.
const CGRect originalRect = CGRectMake(0, 0, 100, 50);
// UIEdgeInsetsMake takes: top, left, bottom, right.
const UIEdgeInsets insets = UIEdgeInsetsMake(10, 10, -20, -20);
// Apply the insets…
const CGRect adjustedRect = UIEdgeInsetsInsetRect(originalRect, insets);
// What's the result?
NSLog(@"%@ inset by %@ is %@",
NSStringFromCGRect(originalRect),
NSStringFromUIEdgeInsets(insets),
NSStringFromCGRect(adjustedRect));
// Logs out…
// {{0, 0}, {100, 50}} inset by {10, 10, -20, -20} is {{10, 10}, {110, 60}}
Objaśnienie
- dodatnia wkładka przesuwa krawędź prostokąta do wewnątrz (w kierunku środkowej prostokąt).
- Ujemna wstawka przesuwa krawędź na zewnątrz (od środka prostokąta).
- Wstawka zerowa pozostawi samą krawędź.
Tell Me More
kolejnych przydatnych funkcji do pracy na CGRect
s są objęte this note.
Znakomity! Powinienem był się spodziewać, że ta metoda będzie istnieć, ale jestem wdzięczny, że nie musiałem jej intensywnie szukać! ;-) – mbm29414