Получить должность ему UIView в отношении суперпанель его суперпанель по
у меня есть UIView, в котором я устроил UIButtons. Я хочу найти позиции этих UIButtons.
Я знаю, что buttons.frame
даст мне позиции, но он даст мне позиции только в отношении его непосредственного супервизора.
есть ли способ, которым мы можем найти позиции этих кнопок, в отношении супервизора uibuttons superview?
например, предположим, что есть UIView с именем "firstView".
тогда у меня есть еще один UIView, "secondView". Этот " SecondView "является подвидом"firstView".
тогда у меня есть UIButton в качестве подвида на "secondView".
->UIViewController.view
--->FirstView A
------->SecondView B
------------>Button
теперь, есть ли способ, которым мы можем найти положение этого UIButton, по отношению к "firstView"?
4 ответа:
Вы можете использовать это:
С
CGRect frame = [firstView convertRect:buttons.frame fromView:secondView];
Свифт
let frame = firstView.convert(buttons.frame, from:secondView)
ссылка на документацию:
https://developer.apple.com/documentation/uikit/uiview/1622498-convert
рамка: (X,Y,ширина,высота).
следовательно ширина и высота не изменят даже wrt супер-супер вид. Вы можете легко получить X, Y следующим образом.
X = button.frame.origin.x + [button superview].frame.origin.x; Y = button.frame.origin.y + [button superview].frame.origin.y;
хотя это не относится к кнопке в иерархии, как я спросил, мне было легче визуализировать и понимать:
отсюда: первоисточник
ObjC:
CGPoint point = [subview1 convertPoint:subview2.frame.origin toView:viewController.view];
Swift:
let point = subview1.convert(subview2.frame.origin, to: viewControll.view)