我的资源文件夹中有十个本地 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];
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];
}
在 xcode 4.3.1 中创建一个新项目。文件 -> 新项目 -> 基于页面的应用程序。将 UIWebView 拖放到故事板上。