2010-11-23 38 views
1

J'ai dix fichiers HTML locaux dans mon dossier de ressources et je veux effectuer l'effet de pagination comme ScrollView et ImageView alors s'il vous plaît aidez-moi comment je peux le faire. J'ai affiché la page HTML en webView, mais je n'ai plus d'idées. Mon code est (mais il est pour une seule page):Comment puis-je effectuer une pagination dans UIWebView?

arrHtmlPage=[[NSMutableArray alloc] initWithObjects:@"2",@"3",@"5",@"6",@"8",@"9",@"11",@"13",nil]; 

NSBundle *bundle = [NSBundle mainBundle]; 

NSString *htmlTemplateLink = [bundle pathForResource:@"2" ofType:@"htm"]; 

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:htmlTemplateLink]]; 

wview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 768, 940)]; 
wview.scalesPageToFit = YES; 
[wview loadRequest:request]; 
wview.delegate=self; 

//wview.multipleTouchEnabled=YES; 
wview.userInteractionEnabled=YES; 

[self.view addSubview:wview]; 

Répondre

1
const CGFloat kScrollObjHeight = 900; 

const CGFloat kScrollObjWidth = 766; 

const NSUInteger kNumImages = 11; 



- (void)layoutScrollImages 

{ 

    UIImageView *view = nil; 
    NSArray *subviews = [scrollView1 subviews]; 


    // reposition all image subviews in a horizontal serial fashion 
    CGFloat curXLoc = 0; 
    for (view in subviews) 
    { 
     if ([view isKindOfClass:[UIWebView class]] && view.tag > 0) 
     { 
      CGRect frame = view.frame; 
      frame.origin = CGPointMake(curXLoc, 0); 
      view.frame = frame; 

      curXLoc += (kScrollObjWidth); 
     } 
    } 

    // set the content size so it can be scrollable 
    [scrollView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollView1 bounds].size.height)]; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    arrHtmlPage=[[NSMutableArray alloc] initWithObjects:@"",@"2",@"3",@"4",@"5",@"6",@"8",@"9",@"11",@"12",@"13",@"14",nil]; 

    [scrollView1 setBackgroundColor:[UIColor blackColor]]; 
    [scrollView1 setCanCancelContentTouches:NO]; 
    scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
    scrollView1.clipsToBounds = YES;  // default is NO, we want to restrict drawing within our scrollview 
    scrollView1.scrollEnabled = YES; 

    // pagingEnabled property default is NO, if set the scroller will stop or snap at each photo 
    // if you want free-flowing scroll, don't set this property. 
    scrollView1.pagingEnabled = YES; 



    int i; 
    for (i = 0; i <[arrHtmlPage count]; i++) 
    { 

     NSBundle *bundle = [NSBundle mainBundle]; 

     NSString *htmlTemplateLink = [bundle pathForResource:[arrHtmlPage objectAtIndex:i] ofType:@"htm"]; 

     NSLog(@"htmlTemplateLink==>%@",htmlTemplateLink); 

     NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:htmlTemplateLink]]; 
     wview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 766, 940) ]; 
     wview.backgroundColor=[UIColor redColor]; 
     wview.tag=i; 
     wview.scalesPageToFit = YES; 
     [wview loadRequest:request]; 

     wview.userInteractionEnabled=YES; 

     [scrollView1 addSubview:wview]; 


    } 

    [self layoutScrollImages]; 

} 



-(IBAction)buttonPressed:(id)sender 
{ 

    int pageNo = [sender tag] ; // current page no 
    int tempNo = pageNo%10 + 1; // total count 

    CGPoint bottomOffset = CGPointMake((tempNo-1) * 768,0); 
    [scrollView1 setContentOffset:bottomOffset animated:YES]; 
} 
0

dans Xcode 4.3.1 créer un nouveau projet. Fichier -> Nouveau projet -> Application basée sur des pages. Faites glisser et déposez un UIWebView sur le storyboard.