UI滚动视图

来源:互联网 发布:如何做好淘宝货品 编辑:程序博客网 时间:2024/05/27 06:53

// 1.签订ScrollView的条约

@interface MainViewController :UIViewController<UIScrollViewDelegate>


@property (nonatomic,retain)UIPageControl *page;


@end



#import "MainViewController.h"


@interface MainViewController ()


@end


@implementation MainViewController


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

   self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];

   if (self) {

        // Custom initialization

    }

    return self;

}


- (void)viewDidLoad

{

    [superviewDidLoad];

    // Do any additional setup after loading the view.

    // 滚动视图

   UIScrollView *scrllView = [[UIScrollViewalloc] initWithFrame:CGRectMake(20,20, 300, 400)];

    scrllView.backgroundColor = [UIColorbrownColor];

    // 设定滚动内容的范围(CGSize)

    scrllView.contentSize =CGSizeMake(2000,0);

    // 偏移量(CGPoint)

//    scrllView.contentOffset = CGPointMake(-100, -100);

    //内容距离上左右下边缘的距离

    scrllView.contentInset =UIEdgeInsetsMake(0,0, 0, 0);

    //关闭边缘的弹动效果

    scrllView.bounces =YES;

    // 滑动到顶部

    scrllView.scrollsToTop =YES;

    //整屏翻动

    scrllView.pagingEnabled =YES;

    // scrollView能不能滚动

    scrllView.scrollEnabled =YES;//NO-不能滚动

    //是否显示横向的滚动条

    scrllView.showsHorizontalScrollIndicator =YES;

    

    // 2.viewController设置为ScrollView代理人

    scrllView.delegate =self;

    [self.viewaddSubview:scrllView];

    [scrllViewrelease];

    

    // scrollView的缩放

    // 缩放:1.设置scrillView的缩放范围

    scrllView.minimumZoomScale =0.5;// 最小范围

    scrllView.maximumZoomScale =2// 最大范围

    //设置缩放时是否反弹

    scrllView.bouncesZoom =YES;

    

    // scrollView上添加一个图片视图(UIImageView)

   UIImageView *imageView = [[UIImageViewalloc] initWithFrame:CGRectMake(0,0, 280, 400)];

    imageView.image = [UIImageimageNamed:@"g"];

    [scrllViewaddSubview:imageView];

    [imageViewrelease];

    

   UIPageControl *pageControl = [[UIPageControlalloc] initWithFrame:CGRectMake(20,350, 300, 60)];

    

    // 显示多少个点

    pageControl.numberOfPages =6;

    pageControl.pageIndicatorTintColor = [UIColorblackColor];

    pageControl.currentPageIndicatorTintColor = [UIColorcyanColor];

    // pageControl 添加 响应方法

    [pageControl addTarget:selfaction:@selector(pageControlAciton:)forControlEvents:(UIControlEventValueChanged)];

    [self.viewaddSubview:pageControl];

    [pageControlrelease];

    // 方便在其他方法中调用pageControl

   self.page = pageControl;

}


- (void)pageControlAciton:(UIPageControl *)pageControl

{

   NSLog(@"%d", pageControl.currentPage);


}


// 缩放的协议方法

// 缩放2.设置一个视图随着scrollView放大缩小


- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

{

    return [scrollView.subviewsfirstObject];// 把第一个子视图随着scrollView 缩放

    

}


// 3.实现代理方法(协议方法)


- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{


//    //只要scrollView 滚动 就会触发这个方法

//    NSLog(@"%s",__FUNCTION__);

//    

//    // scrollView的偏移量变化

//    NSLog(@"%@", NSStringFromCGPoint(scrollView.contentOffset));

//    

//    

//    // 判断scrollView的当前的页数

//    // 偏移量.x/ scrollView宽度

//    int pagNumber = scrollView.contentOffset.x /scrollView.frame.size.width;

//    

//    NSLog(@"页数: %d", pagNumber);

//    NSLog(@"%f", scrollView.contentOffset.x/280);

    

    //当前scrollView滚动到的页数

    self.page.currentPage = scrollView.contentOffset.x/ scrollView.frame.size.width;


}


// 开始拖拽的时候

//- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

//{

//    NSLog(@"开始拖拽%s", __FUNCTION__);

//

//}

//// 结束拖拽的时候

//- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

//{

// NSLog(@"结束拖拽%s", __FUNCTION__);

//

//}

//

//// 开始减速的时候

//- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

//{

// NSLog(@"开始减速%s", __FUNCTION__);

//}

//// 结束减速的时候

//

//- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

//{

// NSLog(@"结束减速%s", __FUNCTION__);

//

//}

- (void)didReceiveMemoryWarning

{

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

{

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end



0 0
原创粉丝点击