1
將UIPanGestureRecognizer附加到子類UIImageView時,發生「無法識別的選擇器發送到實例」消息。我需要繼承UIImageView以保存自定義屬性,所以我只是這樣做並添加了這些屬性。我已經直接測試了在UIImageView上的平移,並且它按預期工作。但是,它不適用於子類UIImageView。下面的代碼(self.myImageView是子類的UIImageView和self.defaultImageView是的UIImageView):是否可以將UIGestureRecognizer附加到子類UIImageView?
- (void)viewDidLoad
{
[super viewDidLoad];
UIPanGestureRecognizer * pgr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveCustomImageView:)];
[self.myImageView addGestureRecognizer:pgr]; //nop, getting error during runtime on start panning
[pgr release];
...
pgr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveUIImageView:)];
[self.defaultImageView addGestureRecognizer:pgr]; //yep, that works
[pgr release];
處理程序方法的聲明是相同的結構
-(void)moveUIImageView:(UIPanGestureRecognizer *)pan{
...
}
-(void)moveCustomImageView:(UIPanGestureRecognizer *)pan{
...
}
錯誤消息「無法識別的選擇發送到實例」會告訴你什麼選擇了,這是無法識別和類實例的嘗試發送它。該信息應該添加到問題中。 – morningstar
我很抱歉,但它似乎是處理程序方法聲明(錯誤輸入的名稱)中的打字錯誤此外,應用@Srikar建議後,一切工作。 – Centurion