iOS高精仿斗鱼(OC)
2016-09-01 本文已影响1738人
葱花饼
�更新-->直播界面的实现,横屏,竖屏适配
关于项目
开发环境:Xcode 7.3.1,语言:Objective-C
用到的工具:Charles
首页
首页 推荐 轮播图轮播图用的是第三方框架SDCycleScrollView,功能多,简单易用,具体实现看代码
SDCycleScrollView *headView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 140) delegate:self placeholderImage:[UIImage imageNamed:@"cover_img_default"]];
self.headView = headView;
headView.pageControlStyle = SDCycleScrollViewPageContolStyleClassic;
headView.pageControlAliment = SDCycleScrollViewPageContolAlimentRight;
headView.currentPageDotColor = [UIColor colorWithRed:255/255.0 green:121/255.0 blue:31/255.0 alpha:1.0];
[slide addSubview:headView];
NSMutableArray *imageArray = [NSMutableArray array];
self.imageArray = imageArray;
for (Slide_data *iamges in self.slide.data) {
[self.imageArray addObject:iamges.pic_url];
}
self.headView.imageURLStringsGroup = self.imageArray;
滑动按钮
这个部分是用继承自UICollectionReusableView的一个视图然后再套用collectionView,如果大家有好的想法,可以交流,备注:控制器用的是collectionViewController
collectionView头部同样继承UICollectionReusableView的视图,再自定义子控件。子控件代码如下 ,用到了masonry约束。
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setupSubviews];
}
return self;
}
- (void)setupSubviews
{
UIView *bgView = [[UIView alloc]init];
self.bgView = bgView;
[self addSubview:bgView];
[bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.bottom.mas_equalTo(0);
}];
UIImageView *icon = [[UIImageView alloc]init];
self.icon = icon;
[self addSubview:icon];
[icon mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(5);
make.centerY.mas_equalTo(self.bgView);
}];
UILabel *titleLabel = [[UILabel alloc]init];
self.titleLabel = titleLabel;
[self addSubview:titleLabel];
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(30);
make.centerY.mas_equalTo(self.icon);
}];
titleLabel.textColor = [UIColor blackColor];
titleLabel.font = [UIFont systemFontOfSize:14];
UIButton *moreBtn = [[UIButton alloc]init];
self.moreBtn = moreBtn;
[self addSubview:moreBtn];
[moreBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-10);
make.centerY.mas_equalTo(self.bgView);
make.width.mas_equalTo(60);
}];
[moreBtn setImage:[UIImage imageNamed:@"btn_skip_pressed"] forState:UIControlStateNormal];
[moreBtn setTitle:@"更多" forState:UIControlStateNormal];
moreBtn.titleLabel.font = [UIFont systemFontOfSize:12];
[moreBtn setTitleColor:[UIColor colorWithRed:170/255.0 green:170/255.0 blue:170/255.0 alpha:1.0] forState:UIControlStateNormal];
moreBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 50, 0, 0);
}
collectionView 尾部
同样继承UICollectionReusableView的视图,就是一个灰色的view
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setupSubviews];
}
return self;
}
- (void)setupSubviews
{
UIView *view = [[UIView alloc]init];
self.view = view;
[self addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.bottom.right.mas_equalTo(0);
}];
view.backgroundColor = [[UIColor lightGrayColor]colorWithAlphaComponent:0.3];
}
collectionViewCell
这个就是collectionViewCell了,里面有2种尺寸的cell,根据section区分尺寸就可以了,标题也一样区分
颜值模块直播实现
直播直播的框架,我使用的b站的ijkplayer,详细的集成方法和使用方法简书上搜一下很多,点赞,送礼物暂时没实现,待研究。
其它模块直播实现
斗鱼直播链接抓不到(加密了)所以找了一个在线直播卫视,rtmp://live.hkstv.hk.lxdns.com:1935/live/hks,只演示播放功能的实现
播放器首页 游戏
首页 游戏和推荐模块相近,代码类似
首页 娱乐和推荐模块相近,代码类似
首页 趣玩和推荐模块相近,代码类似
关注
关注 头部这个就是加一个白色的view
- (void)setupSubviews
{
UIView *bgView = [[UIView alloc]init];
self.bgView = bgView;
[self.view addSubview:bgView];
[bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo([UIScreen mainScreen].bounds.size.width);
make.height.mas_equalTo(100);
make.top.mas_equalTo(64);
}];
bgView.backgroundColor = [UIColor whiteColor];
UILabel *label = [[UILabel alloc]init];
self.label = label;
[bgView addSubview:label];
[label mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(30);
make.centerX.mas_equalTo(self.view);
}];
label.text = @"你还没有登录";
label.font = [UIFont systemFontOfSize:16];
label.textColor = [UIColor colorWithRed:255/255.0 green:114/255.0 blue:47/255.0 alpha:1.0];
UILabel *subLabel = [[UILabel alloc]init];
[bgView addSubview:subLabel];
[subLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.label.mas_bottom).mas_equalTo(10);
make.centerX.mas_equalTo(self.view);
}];
subLabel.text = @"看看下面的推荐或登录已有帐号";
subLabel.font = [UIFont systemFontOfSize:14];
subLabel.textColor = [UIColor grayColor];
}
我的
我的 头部头部用的是xib,省去写代码了有弧度的控件,设置相关的layer属性,导航栏透明看代码
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:nil];
}