码迷,mamicode.com
首页 > 其他好文 > 详细

31.小项目:喜马拉雅 版本2.0

时间:2015-08-06 22:02:05      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

更新说明:添加图片轮播器 

------------- ViewController.m -------------

#import "ViewController.h" 

#define IMAGE_COUNT 5


@interface ViewController () <UIScrollViewDelegate>

@property (weak, nonatomic) IBOutlet UIScrollView *scrView;

@property (nonatomic, strong) NSArray *arrs;

@property (weak, nonatomic) IBOutlet UIScrollView *lunBoQi;

@property (weak, nonatomic) IBOutlet UIPageControl *dianDian;

@end


@implementation ViewController


- (NSArray *)arrs

{

    if(_arrs == nil)

    {

        NSString *strPath = [[NSBundle mainBundle] pathForResource:@"arr" ofType:@"plist"];

        _arrs = [NSArray arrayWithContentsOfFile:strPath];

    }

    return _arrs;

}


- (void)viewDidLoad

{

    [super viewDidLoad];

    CGFloat imageW = 300;

    CGFloat imageH = 130;

    for (int i = 0; i < IMAGE_COUNT; i++) {

        UIImageView *imageView = [[UIImageView alloc] init];

        [self.lunBoQi addSubview:imageView];

        NSString *iconName = [NSString stringWithFormat:@"img_%02d", i + 1];

        imageView.image = [UIImage imageNamed:iconName];

        CGFloat imageY = 0;

        CGFloat imageX = i * imageW;

        imageView.frame = CGRectMake(imageX, imageY, imageW, imageH);

    }

    self.lunBoQi.contentSize = CGSizeMake(IMAGE_COUNT * imageW, 0);

    self.lunBoQi.showsHorizontalScrollIndicator = NO;

    self.lunBoQi.pagingEnabled = YES;

    self.dianDian.numberOfPages = IMAGE_COUNT;

    self.lunBoQi.delegate = self;

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(nextImage) userInfo:nil repeats:YES];

    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];


    CGFloat aW = 145;

    CGFloat aH = 145;

    int num = 2;

    CGFloat marginX = (self.view.frame.size.width - aW * num) / (num + 1);

    CGFloat marginY = 10;

    for (int index = 0; index < self.arrs.count; index++)

    {

        UIButton * apic = [[UIButton alloc] init];

        int col = index % num;

        CGFloat aX = marginX + (aW + marginX) * col;

        int row = index / num;

        CGFloat aY = 10 + marginY + (aH + marginY) * row + 160;

        apic.frame = CGRectMake(aX, aY, aW, aH);

        NSDictionary *dic = self.arrs[index];

        [apic setBackgroundImage:[UIImage imageNamed:dic[@"pic"]] forState:UIControlStateNormal];

        [self.scrView addSubview:apic];

    }

    UIButton * lastBtn = [[UIButton alloc] init];

    lastBtn.frame = CGRectMake(10, 645, 300, 80);

    [lastBtn setBackgroundImage:[UIImage imageNamed:@"banner"] forState:UIControlStateNormal];

    [self.scrView addSubview:lastBtn];

    CGFloat height = CGRectGetMaxY(lastBtn.frame);

    self.scrView.contentSize = CGSizeMake(0, height);

    self.scrView.contentInset = UIEdgeInsetsMake(10, 0, 10, 0);

    self.scrView.contentOffset = CGPointMake(0, -10);

}


- (void)nextImage

{

    NSUInteger page = 0;

    if (self.dianDian.currentPage == 4)

    {

        page = 0;

    }

    else

    {

        page = self.dianDian.currentPage + 1;

    }

    CGPoint offSet = self.lunBoQi.contentOffset;

    offSet.x = page * self.lunBoQi.frame.size.width;

    [self.lunBoQi setContentOffset:offSet animated:YES];

}


- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    CGFloat scrollW = self.lunBoQi.frame.size.width;

    int page = (scrollView.contentOffset.x + 0.5 * scrollW) / scrollW;

    self.dianDian.currentPage = page;

}


@end

 

31.小项目:喜马拉雅 版本2.0

标签:

原文地址:http://www.cnblogs.com/lixiang2015/p/4709256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!