UI滚动视图

// 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 = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    return self;

}


- (void)viewDidLoad

{

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    // 滚动视图

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

    scrllView.backgroundColor = [UIColor brownColor];

    // 设定滚动内容的范围(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.view addSubview:scrllView];

    [scrllView release];

    

    // scrollView的缩放

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

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

    scrllView.maximumZoomScale = 2// 最大范围

    // 设置缩放时是否反弹

    scrllView.bouncesZoom = YES;

    

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

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

    imageView.image = [UIImage imageNamed:@"g"];

    [scrllView addSubview:imageView];

    [imageView release];

    

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

    

    // 显示多少个点

    pageControl.numberOfPages = 6;

    pageControl.pageIndicatorTintColor = [UIColor blackColor];

    pageControl.currentPageIndicatorTintColor = [UIColor cyanColor];

    // pageControl 添加 响应方法

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

    [self.view addSubview:pageControl];

    [pageControl release];

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

    self.page = pageControl;

}


- (void)pageControlAciton:(UIPageControl *)pageControl

{

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


}


// 缩放的协议方法

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


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

{

    return [scrollView.subviews firstObject]; // 把第一个子视图随着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

{

    [super didReceiveMemoryWarning];

    // 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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值