2010-10-18 40 views
1

我爬過所有的網頁,但沒有。從UIscrollView拖動UIImageView到另一個視圖

我有一個for循環在uiscrollview控制器內創建uiimageview。 這是一組圖像,你可以水平滾動

for (int i = 0; i < NIMAGES; i++) { 
    NSString *filename = [NSString stringWithFormat:@"image%d.png", i+1]; 
    ScrollerImage *iv = [[ScrollerImage alloc] initWithNibName:@"ScrollerImage" bundle:nil]; 
    [iv initWithImage:[UIImage imageNamed:filename]]; 
    iv.frame = CGRectMake(i * 320.0f, 0.0f, 320.0f, 150.0f); 
    iv.exclusiveTouch = YES; 
    iv.userInteractionEnabled = YES; 
    [sv addSubview:iv]; 
    [iv release]; 
} 

ScrollerImage類是的UIImageView控制器

#import <UIKit/UIKit.h> 
@interface ScrollerImage : UIImageView { 
} 
@end 

現在,我怎麼能拖(不是必要的舉動,也有觀點副本,或者看一個id ,任何允許我識別圖像的東西)從滾動圖像到另一個視圖? 這就像一個購物車,你可以在底部視圖(購物車)拖動項目。

像這樣:
enter image description here

+0

這響應了類似的問題應該幫助別人尋找有關此主題的指導:[http://stackoverflow.com/questions/7444231/ios-drag-and-drop-between-scroll-views/7969538#7969538](http://stackoverf low.com/questions/7444231/ios-drag-and-drop-between-scroll-views/7969538#7969538) – JaredH 2012-12-15 07:10:51

回答

1

這是一種選擇,使用UIGraphicsGetImageFromCurrentImageContext()

你可以抓住用戶點擊或某些事件之後,從currentScreen的圖像。接下來將其渲染爲屏幕並應用平移手勢在屏幕上移動。

UIView *_DraggableView; 
UIImageView *_imgvcChild1; 

示例代碼:

- (void) onScrollviewClickOrOtherEvent 
{ 
    UIGraphicsBeginImageContext (_DraggableView.frame.size); 
    [ _DraggableView.layer renderInContext:UIGraphicsGetCurrentContext() ]; 

    UIImage *grab = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    if (_imgvcChild1) [ _imgvcChild1 removeFromSuperview ]; 
    _imgvcChild1 = [[ UIImageView alloc ] initWithImage:grab ]; 
    _imgvcChild1.frame = _DraggableView.frame; 
    _imgvcChild1.userInteractionEnabled = YES; 
    [ self.view addSubview:_imgvcChild1 ]; 

    UIPanGestureRecognizer *pan = [[ UIPanGestureRecognizer alloc ] initWithTarget:self action:@selector(moveObject:) ]; 
    [ pan setMinimumNumberOfTouches:1 ]; 
    [ _imgvcChild1 addGestureRecognizer:pan ]; 
} 

- (void) moveObject:(UIPanGestureRecognizer *)pan 
{ 
    _imgvcChild1.center = [ pan locationInView:_imgvcChild1.superview ]; 
} 

---編輯---

樣本在github項目:https://github.com/elpsk/Shopping-Cart

0

我一直想在我的應用程序來實現這一點,我不得不放棄的。我分類UIImageview像你也有(這是一個很好的選擇),我所有的圖像都在一個UIView是UIScrollView的子類。您可以將視圖控制器傳遞給圖像本身,並在圖像視圖到達特定邊界時將其更改爲子視圖的視圖(我自己忽略了ImageViews上的touchesMoved)。問題在於它不會持續拖動。當用戶將圖像拖動到某個點時,用戶必須再次從字面上重新選擇圖像,因爲您將字面視圖從一個視圖切換到另一個視圖。

我希望這至少給你一些見解,我真的沒有找到解決這個問題的辦法。你會認爲很多iPad應用程序將爲拖動所有不同視圖的圖像鋪平道路,並且更多教程將出現在這個問題上!

相關問題