2012-04-10 19 views
2

Hallo ich bin neu für iPhone-Anwendung development.i möchte Seitencontroller für meine Uiscroll-Ansicht verwenden.In Einzelansicht im mit zwei Blättern Ansichten und zwei Seitensteuerelemente.I Setted Pagecontrol mit folgenden Kodierungen aber nur für zwei Seiten funktioniert es gut.aber ich möchte hinzufügen, mehr als zwei Seiten für eine Scroll-Ansicht Zugstrecke von statischen Tasten besteht [1]Wie pagecontrol für die uiscroll-Ansicht hinzufügen?

// 
// newsampleViewController.m 
// newsample 
// 
// Created by SmartJobDevelopers on 4/3/12. 
// Copyright 2012 __MyCompanyName__. All rights reserved. 
// 

#import "newsampleViewController.h" 

@implementation newsampleViewController 

@synthesize scr_anger; 
@synthesize scr_sketch; 

@synthesize pageControl; 
@synthesize pageControl1; 

/* 
// The designated initializer. Override to perform setup that is required before the view is loaded. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 
*/ 

/* 
// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
} 
*/ 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 

    [self setupPage]; 



    //[scr_anger setScrollEnabled:YES]; 
    //[scr_anger setContentSize:CGSizeMake(1290,15)]; 

    //[scr_sketch setScrollEnabled:YES]; 
    //[scr_sketch setContentSize:CGSizeMake(1310,15)]; 

    [super viewDidLoad]; 
} 

-(IBAction)buttonPressed:(id)sender { 
     i_curtag=(int)[sender tag]; 
     //NSLog(@"%d",i_curtag); 
     [self fn_btnOperation]; 
     //[self opt:str_filename]; 
     //NSLog(@"str_filename:%@",str_filename); 
    } 

-(void)fn_btnOperation 
{ 
    if (i_curtag==1) 
    { 
     //str_filename=[NSString stringWithFormat:@"%d.png",i_curtag]; 
     //NSLog(@"str_filename:%@",str_filename); 
     [email protected]"1.png"; 
     // NSLog(@"1.png"); 
    } 
    else if(i_curtag==2) 
    { 
     [email protected]"2.png"; 
     //NSLog(@"2.png"); 
    } 
    else if(i_curtag==3) 
    { 
     [email protected]"3.png"; 
     //NSLog(@"3.png"); 
    } 
    else if(i_curtag==4) 
    { 
     [email protected]"4.png"; 
     // NSLog(@"4.png"); 
    } 
    else if(i_curtag==5) 
    { 
     [email protected]"5.png"; 
     //NSLog(@"5.png"); 
    } 
    else if(i_curtag==6) 
    { 
     [email protected]"6.png"; 
     //NSLog(@"6.png"); 
    } 
    else if(i_curtag==7) 
    { 
     [email protected]"7.png"; 
     // NSLog(@"7.png"); 
    } 
    else if(i_curtag==8) 
    { 
     [email protected]"8.png"; 
     //NSLog(@"8.png"); 
    } 
    else if(i_curtag==9) 
    { 
     [email protected]"9.png"; 
     // NSLog(@"9.png"); 
    } 
    else if(i_curtag==10) 
    { 
     [email protected]"10.png"; 
     // NSLog(@"10.png"); 
    } 

    [self opt:str_filename]; 
} 

-(id)opt:(NSString*)filename 
{ 
    //NSLog(@"filename:%@",filename); 
    str_filename=filename; 
    UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@""delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Save Image" otherButtonTitles:@"Mail Image",nil]; 
    popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque; 
    [popupQuery showInView:self.view]; 
    [popupQuery release]; 
} 

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex1 
{ 
    if (buttonIndex1 == 0) 
    { 
     // NSLog(@"str_filename in actionsheet:%@",str_filename); 
     [self savesingleimage]; 
     // NSLog(@"save"); 
    } 

    else if (buttonIndex1 == 1) 
    { 
     //NSLog(@"str_filename in else:%@",str_filename); 
     [self fmail]; 
     //NSLog(@"mail"); 
    } 
} 

-(void)fmail 
{ 
    //NSLog(@"str_filename:%@",str_filename); 

     NSMutableString *emailBody = [[[NSMutableString alloc] initWithString:@"<html><body><p>"] retain]; 

    [emailBody appendString:@"<b><u>EMOTIONAL ICONS</u></b><br><br>"]; 

    [emailBody appendString:@"</p></body></html>"]; 

     MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init]; 

    UIImage *icon1 = [UIImage imageNamed:str_filename]; 
    NSData *imageData1 = UIImageJPEGRepresentation(icon1, 1); 
    [emailDialog addAttachmentData:imageData1 mimeType:@"image/jpg" fileName:str_filename]; 
     emailDialog.mailComposeDelegate =self; 
     [emailDialog setSubject:@"Emotional Icons"]; 
     [emailDialog setMessageBody:emailBody isHTML:YES]; 
     [emailDialog.navigationBar setTintColor:[UIColor blackColor]]; 

     [self presentModalViewController:emailDialog animated:YES]; 
     [emailDialog release]; 
     [emailBody release]; 
} 

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Status:" message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; 

    switch (result) { 
     case MFMailComposeResultCancelled: 
      alert.message = @"Message Canceled"; 
      break; 
     case MFMailComposeResultSaved: 
      alert.message = @"Message Saved"; 
      break; 
     case MFMailComposeResultSent: 
      alert.message = @"Message Sent"; 
      break; 
     case MFMailComposeResultFailed: 
      alert.message = @"Message Failed"; 
      break; 
     default: 
      alert.message = @"Message Not Sent"; 
      break; 
    } 
    [self dismissModalViewControllerAnimated:YES]; 

    [alert show]; 
    [alert release]; 
} 

-(void)savesingleimage{ 

    // NSLog(@"str_filename in save: %@",str_filename); 
    UIImage *image1 = [UIImage imageNamed:str_filename];  
    UIImageWriteToSavedPhotosAlbum(image1, nil, nil, nil); 
    UIAlertView *successAlert = [[UIAlertView alloc] initWithTitle:@"Saved" 
     message:@"Image Saved into PhotoAlbum" 
     delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(110, 170, 50, 50)]; 
    NSString *path = [[NSString alloc] initWithString:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:str_filename]]; 
    UIImage *bkgImg = [[UIImage alloc] initWithContentsOfFile:path]; 
    [imageView setImage:bkgImg]; 
    [bkgImg release]; 
    [path release]; 

    [successAlert addSubview:imageView]; 
    [imageView release]; 

    [successAlert show]; 
    [successAlert release]; 
} 


#pragma mark - 
#pragma mark The Guts 
- (void)setupPage 
{ 
    scr_anger.delegate = self; 
    scr_sketch.delegate =self; 

    //[self.scr_anger setBackgroundColor:[UIColor blackColor]]; 
    [scr_anger setCanCancelContentTouches:NO]; 
    [scr_sketch setCanCancelContentTouches:NO]; 

    scr_anger.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
    scr_anger.clipsToBounds = YES; 
    scr_anger.scrollEnabled = YES; 
    scr_anger.pagingEnabled = YES; 

    scr_sketch.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
    scr_sketch.clipsToBounds = YES; 
    scr_sketch.scrollEnabled = YES; 
    scr_sketch.pagingEnabled = YES; 

    self.pageControl.numberOfPages = 2; 
    self.pageControl1.numberOfPages = 2; 


    [scr_anger setScrollEnabled:YES]; 
    [scr_sketch setScrollEnabled:YES]; 

    [scr_anger setContentSize:CGSizeMake(1290,15)]; 
    [scr_sketch setContentSize:CGSizeMake(1940,15)]; 

} 

#pragma mark - 
#pragma mark UIScrollViewDelegate stuff 
- (void)scrollViewDidScroll:(UIScrollView *)_scrollView 
{ 
    // NSLog(@"scrollview val=%d",_scrollView.tag); 
    i=_scrollView.tag; 
    // NSLog(@"i=%d",i); 
    if (_scrollView.tag==101) { 

    if (pageControlIsChangingPage) { 
     return; 
    } 

    /* 
    * We switch page at 50% across 
    */ 

    //scr_anger.frame = CGRectMake(0, 0, 320, 0); 
    CGFloat pageWidth =scr_anger.frame.size.width; 
    //NSLog(@"pagewidth=%f",pageWidth); 
    int page = floor((scr_anger.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    // NSLog(@"page=%d",page); 
    pageControl.currentPage = page; 
     } 
    else if(_scrollView.tag==102) 
    { 
     if (pageControlIsChangingPage) { 
      return; 
     } 

     /* 
     * We switch page at 50% across 
     */ 

     CGFloat pageWidth =scr_sketch.frame.size.width; 

     int page = floor((scr_sketch.contentOffset.x - pageWidth/2)/pageWidth) + 1; 

     pageControl1.currentPage = page; 
     NSLog(@"page=%d",page); 
    } 
} 


- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView 
{ 
    pageControlIsChangingPage = NO; 
} 

#pragma mark - 
#pragma mark PageControl stuff 
- (IBAction)changePage:(id)sender 
{ 
    /* 
    * Change the scroll view 
    */ 
    //NSLog(@"i=%d",i); 
    if (i==101) { 


    CGRect frame = scr_anger.frame; 


    //pageControl.frame = CGRectMake(0, 390, 320, 15); 
    frame.origin.x = frame.size.width * pageControl.currentPage; 
     frame.origin.y = 0; 

    [scr_anger scrollRectToVisible:frame animated:YES]; 
    /* 
    * When the animated scrolling finishings, scrollViewDidEndDecelerating will turn this off 
    */ 
    pageControlIsChangingPage = YES; 
    } 

    else if(i==102) 
    { 
     CGRect frame1 = scr_sketch.frame; 

     frame1.origin.x = frame1.size.width * pageControl1.currentPage; 
     frame1.origin.y = 0; 

     [scr_sketch scrollRectToVisible:frame1 animated:YES]; 

     pageControlIsChangingPage = YES; 
    } 

} 



/* 
// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 
*/ 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    [scr_anger release]; 
    [scr_sketch release]; 

    [pageControl release]; 
    [pageControl1 release]; 
     // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (void)dealloc { 
    [super dealloc]; 
} 

@end 
+0

Fügen Sie Ihr Bild korrekt. –

+0

seit neu zu stackoverflow konnte ich kein Bild hinzufügen ... –

+0

Sie habe dein Bild korrekt hinzugefügt. Nach dem Hinzufügen hast du einfach die Leerzeichen gelöscht. Das hat dein Bild unbrauchbar gemacht. Lade es erneut hoch und lösche danach nichts. Hast du meine Antwort versucht? –

Antwort

0

hier ist eine Information [Bild Beschreibung hier eingeben.]:! http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

+0

hallo danke viel.ich überprüft mit tat tutorial.since neu zu entwickeln ich konnte es nicht vollständig verstehen.im Verwenden von 2 blättern Ansichten in Einzelansicht.für jede blättern Ansicht muss ich Seitensteuerung mit mehreren page.its funktioniert gut für zwei Seiten, aber nicht für die dritte Seite. Kannst du mir bitte helfen? –

+0

sicher können Sie mir bitte einige weitere Informationen oder Code teilen. Oder sonst bitte senden Sie mir eine Mail [email protected] – maheswaran

0

In Ihrer setupPage: Methode, Sie haben eine Code, um die Anzahl der Seiten zu erlauben.

self.pageControl.numberOfPages = 2; 
self.pageControl1.numberOfPages = 2; 

Wenn Sie einen NumberOfPages erhöhen wollen, dann den NumberOfPages in diesen Leitungen zu erhöhen.

+0

Hallo danke.Ich habe es versucht, aber es funktioniert nicht.Ihre Seiten in Seitenkontrolle (in Punkten) aber Mein Problem ist, dass es in meiner Bildlaufansicht nicht zunimmt. In der Bildlaufansicht zeigt es nur zwei Seiten. –

+0

Sie müssen die scrollView ContentSize abhängig von der Anzahl der Seiten erhöhen. –

2

This ist ein relativ gutes Tutorial über UIScrollView & IPageControl Kombination. Aber ich selbst suche nach einem Tutorail für dynamischere Designs (wie Hauptseite von ios Anwendungen - ich inkrementiert - dekrementiert automatisch)

+0

hallo danke viel.ich überprüft mit tat tutorial.since neu zu entwickeln ich konnte es nicht vollständig verstehen. Ich benutze 2 blättern views in single view.für jede blättern ansicht muss ich seite steuerung mit mehreren page.its funktioniert gut für zwei Seiten, aber nicht für die dritte Seite. Kannst du mir bitte helfen? –

+0

@MythiliLakshmanan kann es Fälle der Anzahl der Arrays sein. Können Sie Code oder Fehlerprotokoll freigeben? – ilhnctn

+0

hi ilis, ich habe meine vollständige Codierung in der obigen Frage geteilt.Möchten Sie bitte chech nd fix meine prbl? –