是)我有的:
当我移动 aUIView
时,我通过执行以下操作来检测它的移动:
[myView.layer addObserver:self forKeyPath:@"position" options:NSKeyValueObservingOptionNew context:nil];
作为我正在移动myView
的班级,我必须检测到不同的位置。UIView
self
UIView
问题:
当我放入myView
另一个UIView
并移动时anotherView
:
[anotherView addSubview: myView];
方法:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
不再被调用,尽管理论上myView
也是移动的。NSNotification
每次发生“运动”时,我都尝试使用被解雇,但我发现它很笨拙。这类问题有“优雅”的解决方案吗?
对于UIView
我正在使用这种方法的运动:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;