Подтвердить что ты не робот

Как преобразовать систему координат SubView Frame в систему координат Self View

Я создаю программно один scrollView и некоторые кнопки внутри. Когда я нажимаю любую кнопку, вы должны показывать popover.

Моя кнопка в self.view похожа на (100,11), а внутри scrollView (9,11) и scrowView находится где-то в self.view. Поппер показывает в (9,11), но правильным будет (100,11). Я стараюсь использовать конвертировать без успеха.

-(IBAction)showPopover:(id)sender{
//... implemented popover above

//Wrong Origin:
NSLog(@"wrong x:%f y:%f",[sender frame].origin.x, [sender frame].origin.y);

//Transform to correct
CGRect frame = [self.view convertRect:[sender frame] toView:nil];

//Shoulf be right, but is not...
NSLog(@"new x:%f y:%f",frame.origin.x, frame.origin.y);
}

Кто-нибудь помог мне?

4b9b3361

Ответ 1

Рамка просмотра уже находится в системе координат супервизора. Поэтому, если ваша установка self.view содержит scrollview содержит sender:

CGRect frame = [sender.superview convertRect:sender.frame toView:self.view];

// or, better:

CGRect frame = [sender convertRect:sender.bounds toView:self.view];

Ответ 2

Swift:

let frame = sender.convert(sender.bounds to: self.view)