Лучшим способом является создание подкласса вашего вида изображения класса и реализация касанийBegan , касанийMoved , касанийВ закругленных , касанийОтменить делегатов.
Затем добавьте подкласс в свой UIScrollView. Убедитесь, что для вашего объекта subClassed imageView " UserIntractionEnbled " установлено значение YES.
Пример:
DragAndDropImage *dragAndDropImage = [[DragAndDropImage alloc] initWithFrame:urFrame];
[dragAndDropImage initScroller2:scroller2];
[dragAndDropImage.userIntractionEnabled:YES];
[YourScrollView.addSubView:dragAndDropImage];
DragAndDropImage.h
@interface DragAndDropImage : UIImageView {
UIScrollView *childScroller2;
}
@end
DragAndDropImage.m
@implementation DragAndDropImage
-(void)initScroller2:(UIScrollView *)scroller2{
childScroller2 = [scroller2 retain];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//do the code here
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
//do the code here
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint dragEndpoint = [touch locationInView:childScroller2];
CGRect VisibleRect;
VisibleRect.origin = childScroller2.contentOffset;
VisibleRect.size = childScroller2.bounds.size;
CGFloat scale = (CGFloat) 1.0 /childScroller2.zoomScale;
if (isless(scale,1.0)) {
VisibleRect.origin.x *= scale;
VisibleRect.origin.y *= scale;
VisibleRect.size.width *= scale;
VisibleRect.size.height *= scale;
}
if(CGRectContainsPoint([self frame], dragEndpoint) && CGRectContainsPoint(VisibleRect,self.center))
{
[childScroller2.addSubView:self];
}
}
Для перетаскивания,
Пожалуйста, обратитесь по ссылке iphone-how-to-drag-and-drop-images