2012-10-19 50 views
0

如何設置contentoffset以追蹤圖像用戶所在並選擇將其保存到照片相冊。scrollview中的contentoffset

UIScrollView *imageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

imageScrollView.pagingEnabled = YES; 

NSInteger numberOfViews = 61; 

for (int i = 0; i < numberOfViews; i++) { 

CGFloat xOrigin = i * self.view.frame.size.width; 

NSString *imageName = [NSString stringWithFormat:@"image%d.png", i]; 

_image = [UIImage imageNamed:imageName]; 

_imageView = [[UIImageView alloc] initWithImage:_image]; 

_imageView.frame = CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height); 

UILongPressGestureRecognizer *gestureRecognizer = [[UILongPressGestureRecognizer alloc] 
                initWithTarget:self 
                action:@selector(handleLongPress:)]; 

imageScrollView.userInteractionEnabled = YES; 
[imageScrollView addGestureRecognizer:gestureRecognizer]; 
gestureRecognizer.delegate = self; 
[gestureRecognizer release]; 

[imageScrollView addSubview:_imageView]; 

imageScrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height); 

編輯:

imageScrollView.contentOffset = CGPointMake(CGFloat x, CGFloat y); 
在contentoffset不知道要放什麼東西

,使圖像可以跟蹤用戶並選擇保存到相冊

- (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer{ 
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ 
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Save Photo", nil]; 
actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent; 
[actionSheet showInView:self.view]; 
[actionSheet release]; 

}} 

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 

switch (buttonIndex) { 
case 0: 
    [self savePhoto]; 

    break; 

default: 
    break; 

} 

-(void)savePhoto{ 

CGPoint location = [gesture locationInView:_imageView]; 

if (CGRectContainsPoint(_imageView.bounds, location)){ 

UIImageWriteToSavedPhotosAlbum(_image, self, @selector(image: didFinishSavingWithError:contextInfo:), nil); 
    }}} 

任何想法將不勝感激。

回答

0

您可以使用此代碼(來自某個用於scrollview的Apple示例項目)來確定當前可見的「頁面」在滾動視圖中的位置。

// Calculate which page is visible 
CGFloat pageWidth = self.scrollView.frame.size.width; 
int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 

一旦你知道了這個指數,你可以用它來確定什麼樣的形象,以節省

相關問題