scrollview 内容重用小demo(懒人专用哈)

首先创建一个singleview 的project。

在viewcontroller.h

@interface ViewController :UIViewController<UIScrollViewDelegate>{

    

    UIScrollView *myScrol;

}


然后写viewcontroller.m

#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。。有点。。不舒服。就这么凑活吧。亲


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值