Я пишу метод, который должен получить точку: 'in_centre', которая будет находиться в системе координат текущего представления (также передается как другой параметр: 'target')
Мне нужнопреобразуйте эту точку в координаты окна.
В документации сказано, что я должен сделать это, установив здесь второй параметр nil:
centerPoint = [target convertPoint:in_centre toView:nil]; // get in Window Coords
NSLog(@"passed in (vc): %@", NSStringFromCGPoint(in_centre));
NSLog(@"centerPoint_wc: %@", NSStringFromCGPoint(centerPoint));
Но вывод показывает, что он ничего не делает.
2010-11-24 07: 32: 45.815 ChordWheel [3195: 207] передан (vc): {150, 150}
2010-11-24 07: 32: 45.816 ChordWheel [3195: 207] centerPoint_wc: {150, 150}
Это неправильно - это должен быть центр экрана iPhone: {160, 240}
Что происходит?
РЕДАКТИРОВАТЬ: спасибо за эти предложения - я попробовал их и до сих пор не радует:
- (id) initWithFrame: (CGRect) theFrame
target: (id) p_target
actionPlayChord: (SEL) p_actionPlayChord
actionSettings: (SEL) p_actionSettingsClick
{
target = p_target;
actionPlayChord = p_actionPlayChord;
self = [super initWithFrame: theFrame];
if ( ! self )
return nil;
CGPoint centre = CGPointMake(theFrame.size.width / 2.0,
theFrame.size.height / 2.0);
CGPoint c_wc = [self convertPoint: centre toView: nil];
CGPoint c_wc2 = [self convertPoint: centre toView: self.window];
NSLog(NSStringFromCGRect(theFrame));
NSLog(NSStringFromCGPoint(centre));
NSLog(NSStringFromCGPoint(c_wc));
NSLog(NSStringFromCGPoint(c_wc2));
2010-11-24 14: 33: 55.202 ChordWheel [3452: 207] {{10, 90},{300, 300}}
2010-11-24 14: 33: 55.202 ChordWheel [3452: 207] {150, 150}
2010-11-24 14: 33: 55.203 ChordWheel [3452: 207] {150, 150}
2010-11-24 14: 33: 55.204 ChordWheel [3452: 207] {150, 150}