12: Determine whether a widget is displayed in the main window (encapsulation) based on four conditions.
Four conditions:
1. Add to main window?
2. Hide or not
3. Whether the transparency is greater than 0.01
4. Is it in the current window (when the key point is determined based on the frame, the frame of the control is determined based on the upper left corner of the current window)
1-(BOOL) isShowingOnKeyWindow 2 {3 // Main Window 4 UIWindow * keyWindow = [UIApplication sharedApplication]. keyWindow; 5 6 // calculate the rectangle of self based on the coordinate origin in the upper left corner of the window. 7. CGRect newFrame = [keyWindow convertRect: self. frame fromView: self. superview]; 8 CGRect windowBounds = keyWindow. bounds; 9 // determine if newFrame is on windowBounds 10 BOOL isOnWindow = CGRectIntersectsRect (newFrame, windowBounds); 11 12 return self. window = keyWindow && ! Self. hidden & self. alpha> 0.01 & isOnWindow; 13}