2013-07-17 6 views
2

enter image description hereПолучить Видимый прямоугольник UIView добавлен как подвид

как показано на картинке выше UIView A & UIView C добавляются UIView B. для B ClipToBounds ДА так Красная площадь не видно.

Можно ли получить видимый прямоугольник A & C (показано с линиями)

мне нужно показать прямоугольник в видимой области, когда я прикасаюсь например View A. это так.

enter image description here

+0

что вы хотите точно ?? вы хотите захватить это представление как изображение? –

+0

Нет, просто нужно получить видимый прямоугольник View A & View B. –

+0

обновили мой вопрос. –

ответ

3

Вы можете получить пересечение прямоугольник из двух прямоугольников с помощью CGRectIntersection() метода

CGRect intersectionRect = CGRectIntersection(viewA.frame, viewB.frame); 
if(CGRectIsNull(intersectionRect)) { 
    //Rects do not intersect 
} 
2

Да, вы можете с помощью этой функции:

CGRect CGRectIntersection (
    CGRect r1, 
    CGRect r2 
); 

Если вы точно сказать, что вы хочу сделать, может быть, лучше, например, мне нужно что-то подобное, и вместо этого обрезаю вручную, я просто захватил содержимое UIView B как изображение ,

+0

обновили мой вопрос. –

+0

Я предполагаю, что вы можете сохранить вид A до альфа-0, если вы используете на нем событие касания. Если вы используете событие на B, вы можете проверить, касались ли вы A с CGRectContainsPoint и использовать скрытое свойство, чтобы показать или скрыть A. –

0

Используйте для этого

[UIView convertRect:<#(CGRect)#> fromView:<#(UIView *)#>] 
[UIView convertRect:<#(CGRect)#> toView:<#(UIView *)#>] 

И CGRectIntersection функции

0

на touchesEnded: методе вы можете найти его как сильфон ..

-(void) touchesEnded:(NSSet *) touches { 
    if(CGRectIntersectsRect([ViewA frame], [ViewB frame]) { 
     //Do something here 
    } 
    } 

Дополнительной информации о RectInterSect От This Link

я надеюсь, что он вам полезен ...

+0

@sagar ... см. Эту ссылку https://developer.apple.com/library/mac/ # documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html # // apple_ref/c/func/CGRectContainsPoint может быть вы найдете что-то полезное для вас ... :) –

Смежные вопросы