我試圖編寫一個簡單的程序,需要5個圖像,並允許您從屏幕底部拖動它們,並按照您喜歡的任何順序將它們捕捉到頂部的5個其他圖像。我已經將UIImageView分類爲一個新類,並添加了觸動開始,觸動移動並觸動結束。然後在我的主視圖控制器上放置圖像並將它們的類設置爲我創建的新子類。該運動很有效,其實我是NSLogging
自定義類中的座標。UIImageview和TouchesEnded事件
問題是我想弄清楚如何從觸摸信息結束自定義類,並讓它調用我的主視圖控制器中的圖像對象的功能,所以我可以測試是否或者圖像不在另一個圖像上。並將其移動到以圖像爲中心(對齊它)。
這裏是我的自定義類m文件中的代碼。我的看法控制器與其中5個被設置爲該類和5是正常的圖像視圖10個圖像視圖的廈門國際銀行文件基本上是空的..
#import "MoveImage.h"
CGPoint EndPoint;
@implementation MoveImage
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
startPoint = [[touches anyObject] locationInView:self];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint newPoint = [[touches anyObject] locationInView:self.superview];
newPoint.x -= startPoint.x;
newPoint.y -= startPoint.y;
CGRect frm = [self frame];
frm.origin = newPoint;
[self setFrame:frm];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *end = [[event allTouches] anyObject];
EndPoint = [end locationInView:self];
NSLog(@"end ponts x : %f y : %f", EndPoint.x, EndPoint.y);
}
@end
此外,我只是想,如果有一個更簡單的方法來通過添加接觸開始,移動和結束事件到我的主視圖控制器,那很好。只是不確定最好的方法是什麼。也許創建一個uiimage視圖的自定義子類是不是要走的路? – TommyT39
UIView在響應鏈中,這意味着它會收到touchesBegan等事件,你的視圖控制器不會。最好的方式是告訴你的視圖它可以「粘」到什麼位置,然後在touchesBegan等方法中實現它 –