How can I perform Paging in UIWebView?

☆樱花仙子☆ 提交于 2019-12-08 07:50:29

问题


I have ten local HTML files in my Resource folder and I want to performing paging effect like ScrollView and ImageView so please help me how I can do that. I have displayed HTML page in webView, but i don't have any more ideas. My code is (but it's for only One page):

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];  

回答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];
}



回答2:


In xcode 4.3.1 create a new project. File -> New project -> Page-Based application. Drag and drop a UIWebView onto the storyboard.



来源:https://stackoverflow.com/questions/4252331/how-can-i-perform-paging-in-uiwebview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!