首先创建一个singleview 的project。
在viewcontroller.h
@interface ViewController :UIViewController<UIScrollViewDelegate>{
UIScrollView *myScrol;
}
#import"ViewController.h"
@interfaceViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
myScrol= [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,320,480)];
myScrol.delegate=self;
myScrol.contentOffset=CGPointMake(0,0);
myScrol.contentSize=CGSizeMake(1600,480);
myScrol.pagingEnabled=YES;
[self.viewaddSubview:myScrol];
[myScrol release];
UILabel *mylabel1=[[UILabel alloc]initWithFrame:CGRectMake(0,0,100, 100)];
mylabel1.tag=101;
mylabel1.text=@"101";
[myScroladdSubview:mylabel1];
UILabel *mylabel2=[[UILabel alloc]initWithFrame:CGRectMake(320,0 ,100,100)];
mylabel2.text=@"102";
mylabel2.tag=102;
[myScroladdSubview:mylabel2];
[mylabel1 release];
[mylabel2 release];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[superviewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevicecurrentDevice]userInterfaceIdiom] ==UIUserInterfaceIdiomPhone) {
return (interfaceOrientation !=UIInterfaceOrientationPortraitUpsideDown);
} else {
return YES;
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
if ((int)scrollView.contentOffset.x %320==0) {
if ([scrollView viewWithTag:99+(int)scrollView.contentOffset.x/320]) {
NSLog(@" remove tag: %d",99+(int)scrollView.contentOffset.x/320);
[[scrollViewviewWithTag:99+(int)scrollView.contentOffset.x/320]removeFromSuperview];
}elseif([scrollViewviewWithTag:100+3+(int)scrollView.contentOffset.x/320]){
NSLog(@" remove tag: %d",100+3+(int)scrollView.contentOffset.x/320);
[[scrollViewviewWithTag:100+3+(int)scrollView.contentOffset.x/320]removeFromSuperview];
}
if (![scrollView viewWithTag:100+(int)scrollView.contentOffset.x/320]&&(int)scrollView.contentOffset.x/320!=0) {
NSLog(@" add tag: %d",100+(int)scrollView.contentOffset.x/320);
UILabel *mylabel=[[UILabel alloc]initWithFrame:CGRectMake(((int)scrollView.contentOffset.x/320-1)*320,0,100, 100)];
mylabel.tag=100+(int)scrollView.contentOffset.x/320;
mylabel.text=[NSStringstringWithFormat:@"%d",100+(int)scrollView.contentOffset.x/320];
[myScroladdSubview:mylabel];
[mylabelrelease];
}elseif(![scrollViewviewWithTag:100+2+(int)scrollView.contentOffset.x/320]&&(scrollView.contentSize.width-scrollView.contentOffset.x>320)){
NSLog(@" add tag: %d",100+2+(int)scrollView.contentOffset.x/320);
UILabel *mylabel=[[UILabel alloc]initWithFrame:CGRectMake(((int)scrollView.contentOffset.x/320+1)*320,0,100, 100)];
mylabel.tag=100+2+(int)scrollView.contentOffset.x/320;
mylabel.text=[NSStringstringWithFormat:@"%d",100+2+(int)scrollView.contentOffset.x/320];
[myScroladdSubview:mylabel];
[mylabelrelease];
}
}
}
@end
如果想在每个label上面添加button,可以设置每个label的 userInteractionEnabled属性为YES。
好啦,懒人们,你们不想算法,哥就想了哈。
主要是我怕一直用viewwithtag。。有点。。不舒服。就这么凑活吧。亲