文档章节

第03天实战技术(02):网易新闻(设置标题)

宇鸿165
 宇鸿165
发布于 2017/03/27 09:51
字数 956
阅读 3
收藏 0

#####一、网易新闻(设置标题)

设置标题

2_1设置标题显示.png

  • 1.添加所有子控制器
#pragma mark 添加所有子控制器
- (void)setUpAllChildController
{
// 头条
TopLineViewController *tVC = [[TopLineViewController alloc]init];
tVC.title = @"头条";
[self addChildViewController:tVC];
// 热点
HotViewController *hVC = [[HotViewController alloc]init];
hVC.title = @"热点";
[self addChildViewController:hVC];
// 视频
VideoViewController *vVC = [[VideoViewController alloc]init];
vVC.title = @"视频";
[self addChildViewController:vVC];
// 社会
SocietyViewController *sVC = [[SocietyViewController alloc]init];
sVC.title = @"社会";
[self addChildViewController:sVC];
// 订阅
ReaderViewController *rVC = [[ReaderViewController alloc]init];
rVC.title = @"订阅";
[self addChildViewController:rVC];
// 科技
ScienceViewController *scVC = [[ScienceViewController alloc]init];
scVC.title = @"科技";
[self addChildViewController:scVC];

}
  • 2.添加所有标题 ==> 由多少个子控制器决定
#pragma mark 设置所有标题
- (void)setUpAllTitle
{
#warning 已经 把内容展示上去 ==> 展示的效果 是不是我们想要的(细节调整)
/**
1. 标题颜色 为黑色
2. 需要让scrollView 可以滚动
*/

// 添加所有的标题按钮
NSInteger count = self.childViewControllers.count; // 获取所有的子控制器的数量
CGFloat btnW = 100;
CGFloat btnH = self.titleScrollView.bounds.size.height;
CGFloat btnX = 0;
CGFloat btnY = 0;
for (int i = 0; i< count; i++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
// 获取对应的子控制器
UIViewController *vc = self.childViewControllers[i];
[btn setTitle:vc.title forState:UIControlStateNormal];
btnX = i * btnW ; // 等于 i * 一个按钮的宽度
// 0 * 100 = 0
// 1 * 100 = 100
btn.frame = CGRectMake(btnX, btnY, btnW, btnH); // 设置尺寸 (宽高一样)
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.titleScrollView addSubview:btn];
}


}
  • 3.设置scrollview的滚动内容,和隐藏水平滚动条
// 设置scroll的滚动范围
self.titleScrollView.contentSize = CGSizeMake(count * btnW, 0);
// 隐藏滚动条
self.titleScrollView.showsHorizontalScrollIndicator = NO; // 水平方向

code

#import "ViewController.h"

#import "TopLineViewController.h" // 头条
#import "HotViewController.h" // 热点
#import "VideoViewController.h" // 视频
#import "SocietyViewController.h" // 社会
#import "ReaderViewController.h" // 订阅
#import "ScienceViewController.h" // 科技

@interface ViewController ()

@property (nonatomic) UIScrollView *titleScrollView;
@property (nonatomic) UIScrollView *contentScrollView;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

// 导航控制器由栈点设计 当前的导航控制器的栈点是 navigationItem
self.navigationItem.title = @"网易新闻";

// 先有思路再去写代码
// 每一个点 抽取一个方法 : 写完方法名里面调用 (这样不会出现没有调用,导致没有效果)

// 1.添加标题滚动视图
[self setUpTitleScrollView];
// 2.添加内容滚动视图
[self setUpContentScrollView];

// 3.添加所有子控制器
[self setUpAllChildController];

// 3.添加所有标题 ==> 由多少个子控制器决定
// 4.设置标题
[self setUpAllTitle];

}

#pragma mark 添加标题滚动视图
- (void)setUpTitleScrollView
{
UIScrollView *titleScrollView = [[UIScrollView alloc]init];
// 最好判断一下 有没有导航条 再来计算frame
CGFloat y = self.navigationController.navigationBarHidden ? 20 : 64; // 如果等于yes 说明隐藏了
titleScrollView.frame = CGRectMake(0, y, self.view.frame.size.width, 44);
titleScrollView.backgroundColor = [UIColor redColor];
[self.view addSubview:titleScrollView];
_titleScrollView = titleScrollView; // 内容视图需要获取 标题视图的最大y值 ,所以我们需要提供一个属性
}
#pragma mark 添加内容滚动视图
- (void)setUpContentScrollView
{
UIScrollView *contentScrollView = [[UIScrollView alloc]init];
// 最好判断一下 有没有导航条 再来计算frame
CGFloat y = CGRectGetMaxY(self.titleScrollView.frame); // 获取标题滚动视图的最大y值
contentScrollView.frame = CGRectMake(0, y, self.view.frame.size.width, self.view.frame.size.height - y);
contentScrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:contentScrollView];
_contentScrollView = contentScrollView;
}

#pragma mark 添加所有子控制器
- (void)setUpAllChildController
{
// 头条
TopLineViewController *tVC = [[TopLineViewController alloc]init];
tVC.title = @"头条";
[self addChildViewController:tVC];
// 热点
HotViewController *hVC = [[HotViewController alloc]init];
hVC.title = @"热点";
[self addChildViewController:hVC];
// 视频
VideoViewController *vVC = [[VideoViewController alloc]init];
vVC.title = @"视频";
[self addChildViewController:vVC];
// 社会
SocietyViewController *sVC = [[SocietyViewController alloc]init];
sVC.title = @"社会";
[self addChildViewController:sVC];
// 订阅
ReaderViewController *rVC = [[ReaderViewController alloc]init];
rVC.title = @"订阅";
[self addChildViewController:rVC];
// 科技
ScienceViewController *scVC = [[ScienceViewController alloc]init];
scVC.title = @"科技";
[self addChildViewController:scVC];

}
#pragma mark 设置所有标题
- (void)setUpAllTitle
{
#warning 已经 把内容展示上去 ==> 展示的效果 是不是我们想要的(细节调整)
/**
1. 标题颜色 为黑色
2. 需要让scrollView 可以滚动
*/

// 添加所有的标题按钮
NSInteger count = self.childViewControllers.count; // 获取所有的子控制器的数量
CGFloat btnW = 100;
CGFloat btnH = self.titleScrollView.bounds.size.height;
CGFloat btnX = 0;
CGFloat btnY = 0;
for (int i = 0; i< count; i++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
// 获取对应的子控制器
UIViewController *vc = self.childViewControllers[i];
[btn setTitle:vc.title forState:UIControlStateNormal];
btnX = i * btnW ; // 等于 i * 一个按钮的宽度
// 0 * 100 = 0
// 1 * 100 = 100
btn.frame = CGRectMake(btnX, btnY, btnW, btnH); // 设置尺寸 (宽高一样)
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.titleScrollView addSubview:btn];
}

// 设置scroll的滚动范围
self.titleScrollView.contentSize = CGSizeMake(count * btnW, 0);
// 隐藏滚动条
self.titleScrollView.showsHorizontalScrollIndicator = NO; // 水平方向
}


@end

© 著作权归作者所有

宇鸿165
粉丝 1
博文 919
码字总数 368963
作品 0
广州
私信 提问
诺奖得主萨金特看好人工智能的中国能力

(原标题:诺奖得主萨金特看好人工智能的中国能力 经济大咖聚首网易经济学家年会热议新经济新物种) <--> “中国制造已经在全球的终端消费品市场中占据了前沿位置,中国的高科技发展也是高质...

北青网-北京青年报
2018/09/03
0
0
从网易首页变化看互联网15年变化

网站首页的变化不仅是一家互联网企业的“门面”,对“历史悠久”的网站来说,更能反映出互联网的变化,网易就是其中之一。本文将从网易首页15年来的变化,回顾15年来中国互联网发展历程。 19...

oschina
2012/05/23
7.3K
65
[知识图谱实战篇] 六.HTML+D3实现点击节点显示相关属性及属性值

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/87193405 前面作者讲解了很多知识图谱原理知识,包括知识...

Eastmount
02/13
0
0
求助,关于在scrollView上放UIView不能正常显示的问题

我要写一个新闻app,就像网易新闻那样的,上面一个小的标题scrollView 下面一个大scrollView,大的scrollView我放了几个View,然后我创建了几个类继承于UIVew,在这几个类里面写各个页面的新闻...

暴走的小罐头瓶
2015/10/03
664
1
python3 爬虫实战之爬取网易新闻APP端

(一)使用工具 这里使用了火狐浏览器的user-agent插件,不懂的可以点这里火狐插件使用 (二)爬虫操作步骤: 百度 网易新闻并选择 步骤一: 步骤二: 步骤三: 步骤四: 最后一步: 注意点:...

徐代龙
2018/05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0
jar 更新部分文件

C:\Program Files (x86)\Java\jdk1.8.0_102\bin>jar -hIllegal option: hUsage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...Options: -c c......

圣洁之子
今天
9
0
OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @胖达panda:分享歌词: 我有一只小毛驴我从来也不骑,有一天我心血来潮骑着去赶集,我手里拿着小皮鞭我心里正得意,不知怎么哗啦啦,我摔了一...

小小编辑
今天
2.6K
13
DDD(四)

1,引言 软件开发者大多趋向于将关注点放在数据上,而不是领域上。这对于刚入门的DDD的新手而言也是如此。以我目前的思考方式,数据库依然占据主要的地位。开发一个功能,首先我就会考虑我会...

MrYuZixian
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部