iOS7 UIScrollView 适配问题

如果在UINavigationController内设置一个UIViewControlller,而UIViewController的第一个子视图是UIScrollView的话,UIScrollview里面所有的subView都会发生下移64个像素;

修正方案:

把scrollView更改地位,是它不是子视图树的根部第一个子视图。


- (void)viewDidLoad

{

[super viewDidLoad];

// 添加一个视图,使UIScrollview不是子视图树根部的第一个子视图
    UIView * tmpBackGround = [[UIView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:tmpBackGround];
    
    _topScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, tmpPointY, MainWidth, 120)];
    _topScrollView.delegate = self;
    [_topScrollView setBackgroundColor:[UIColor blackColor]];
    // 分页
    [_topScrollView setPagingEnabled:YES];
    // 回弹
    [_topScrollView setBounces:YES];
    // 关闭滚动条
    [_topScrollView setShowsHorizontalScrollIndicator:NO];
    [_topScrollView setShowsVerticalScrollIndicator:NO];
    // 滚动范围
    [_topScrollView setContentSize:CGSizeMake(MainWidth * 3, 120)];

// 如果是iOS7应添加self.automaticallyAdjustsScrollViewInsets = NO;以防止黑边问题
    if (IsIOS7) {
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
    [tmpBackGround addSubview:_topScrollView];
    
    _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(130, 64 + 100, MainWidth - 260, 20)];
    [_pageControl setBackgroundColor:[UIColor grayColor]];
    // 设置选中点颜色
    [_pageControl setCurrentPageIndicatorTintColor:[UIColor redColor]];
    // 点的个数
    [_pageControl setNumberOfPages:3];
    // 起始页
    [_pageControl setCurrentPage:0];
    [_pageControl setAlpha:0.5];
    [_pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];
    [tmpBackGround addSubview:_pageControl];

}


#pragma mark - scrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSInteger currentPage = self.topScrollView.contentOffset.x / MainWidth;
    [self.pageControl setCurrentPage:currentPage];
    
    UIImageView * topImage = [[UIImageView alloc] initWithFrame:CGRectMake(MainWidth * currentPage, 0, MainWidth, 120)];
    [topImage setContentMode:UIViewContentModeScaleToFill];
    [topImage setBackgroundColor:[UIColor redColor]];
     NSURL * url = [NSURL URLWithString:[self.imageArray objectAtIndex:currentPage]];
//    [topImage setImageWithURL:url];
    [topImage setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholderImage.png"]];
    [self.topScrollView addSubview:topImage];
   
}


#pragma mark - pageControl
- (void)pageChanged:(id)sender
{
    NSInteger currentPage = _pageControl.currentPage;
    [self.topScrollView setContentOffset:CGPointMake(320 * currentPage, 0)];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值