當我移動UIView
我做檢測其運動如下:
[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;
下面發佈的解決方案是否適合您? –