如何在UIWebView中进行分页?

问题描述 投票:0回答:2

我的资源文件夹中有十个本地 HTML 文件,我想执行像

ScrollView
ImageView
这样的分页效果,所以请帮助我如何做到这一点。我已经在
webView
中显示了HTML页面,但我没有更多的想法。我的代码是(但仅适用于一页):

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];  
html pagination uiwebview
2个回答
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
投票

在 xcode 4.3.1 中创建一个新项目。文件 -> 新项目 -> 基于页面的应用程序。将 UIWebView 拖放到故事板上。

© www.soinside.com 2019 - 2024. All rights reserved.