网易新闻

 

3-5- - - - - 4-3网易新闻:

一、改App头像   Assets中App Icons

二、改App名字   info.plist文件中Bundle Name

三、主页面(新闻)和侧栏的显示

     3.1.进入主页面

        3.1.1  第一次启动应用程序进入引导页

              [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"firstLaunch"];

               引导页:WelcomeViewController  [3张轮番图,第三张上加一个手势进入主页面]

        3.1.2  非第一次进入主页面()

                     主页面:MainViewController

 

    3.2 侧   栏:LeftViewController

        3.2.1 创建侧栏  【用数组和For循环来写各个控件,最后再加一个大Button】

        3.2.2 将侧栏6个导航放入数组,且将新闻设置为根导航,导航左侧按钮可来回实现抽屉效果(侧栏和回主页面)_isOpen=!_isOpen;

        3.2.3侧栏每个的点击事件:使用代理【其他类实现代理方法,必须有 代理所在的类创建对象.delegate=self;】

                             UINavigationController *nav=[_navArray objectAtIndex:number];

                  //显示局部导航,那么局部的导航等于全局即新闻的导航 nav.view.frame=_navi.view.frame;

                  //进入最初创立导航时的值 _isOpen=NO;

                  //每一次的点击都让全局导航变成局部的 _navi=nav;

                [self goBackMainFrame];

                 [self.view addSubview:nav.view];

      3.3  启动页每次都有

              Assets.xcassets- ->不选择Landscape和ios6.0iphone的Portrait-

             Target- ->Generals- - >App Icons- ->Launch Images Source - ->删除Launch Screen File

四、新闻部分:

      4.1.Controllers: Xib中具体变化标题,轮番图,内容

        4.1.1 标题中获取内容

             NSString *plistPath=[[NSBundle mainBundle]pathForResource:@"NewsInfo" ofType:@"plist"];

       NSArray *plistArray=[[NSArray alloc]initWithContentsOfFile:plistPath];

         //将plistArray传给NewsTool getDataArray的Array

        NSMutableArray *dataArray=[NewsTool getDataArray:plistArray];

           for (int i=0; i<dataArray.count; i++) {

                  //NewsTool getDataArray中存的是Model

                 NewsModel *model=[dataArray objectAtIndex:i];

      4.1.2创建中间轮番图:图片可以存放在Assets中,这样比较整齐

      4.1.3 下方获取内容:利用View中的自定义初始化方法

                                   NewsView *newsView=[[NewsView alloc]initWithFrame:rect WithImage:model.urlString WithTopLabel:model.title  WithContentLabel:model.content];

   4.2 View: 得到图片,标题,内容,横线的控件(初始化)

      4.2.1 初始化自定义方法

    -(instancetype)initWithFrame:(CGRect)frame WithImage:(NSString *)imageUrl WithTopLabel:(NSString *)strLabel WithContentLabel:(NSString *)contentlabel;

      4.2.2 创建各种控件(image,Label,)

   4.3.Model: 只定义3个变量供其他类使用

   4.4 Tool:  得到正文中的图片,标题,文字。(从数组中获取)

     for (NSDictionary *dicData in array) {

            NewsModel *model=[[NewsModel alloc]init];

            model.title=[dicData objectForKey:@"title"];

            model.content=[dicData objectForKey:@"content"];

            model.urlString=[dicData objectForKey:@"urlString"];

            //同一个类型 数组下字典  可以一样

            [dataArray addObject:model];

          }

        return dataArray;

五、订阅部分:

    5.1 Xib中拖拉图片,Label,等等,通过点击进入二层页面【push】

    5.2 二层页面

        5.2.1 利用Xib建立搜索框,并设置placeHolder

        5.2.2  plist- ->获取数组- ->获取字典- ->list(Array)  title(String)

        5.2.3 左侧按钮:改变字体

        [_changeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

        [titleBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

        _changeBtn=titleBtn;

        5.2.4 左侧第一个按钮默认为改变 且要直接显示字体。所以直接调用改变字体方法,并先创建右侧Label

        5.2.5 右侧Label内容:可以利用全局数组获取list内容,并重写set方法

        // NSArray *arr=[_listArray objectAtIndex:titleBtn.tag -1];

       self.nameArray=[_listArray objectAtIndex:titleBtn.tag-1];

        UILabel *label=[self.view viewWithTag:100+i];

          label.text=[nameArray objectAtIndex:i];

      5.2.6加一条长线:可以将Label的height或者width=1

六、图片和视频部分:

   6.1 图片

      6.1.1 对图片进行缩放

           UIImage *image=[UIImage imageNamed:imageStr];

          //对图片进行一个缩放  现在高度/现在宽度=原始高度/原始宽度

         _height=image.size.height*IMAGE_WIDTH/image.size.width

      6.1.2 使用三目运算 节省代码量

      float resultHeight=_leftHeight<_rightHeight?_rightHeight+_height:_leftHeight+_height;

          _imageScrollView.contentSize=CGSizeMake(320, resultHeight);

     6.1.3 使用瀑布流效果,使用全局变量 _leftHeight _rightHeight

     float x=_leftHeight<=_rightHeight?10:165;

      _leftHeight=_leftHeight+_height+10;

    6.1.4 切记加图片.image 和ScrollView.contentSize

     imageView.image=image;

  6.2

    6.2.1 path- ->url- ->Player

      NSString  *moviePlayerPath=[[NSBundle mainBundle]pathForResource:@"crzs3" ofType:@"mp4"];

         SURL *url=[[NSURL alloc]initFileURLWithPath:moviePlayerPath];

      moviePlayer=[[MPMoviePlayerControlleralloc]initWithContentURL:url];

    6.2.2 学会使用For循环建立多个一样的播放器和按钮

    6.2.3 点击下一个按钮需要上一个按钮出现

                btn.hidden=YES;

                //点击时已经调用下一句

               _stopBtn.hidden=NO;

              //利用全局变量  得到上一个按钮

             _stopBtn = btn;

    6.2.3寻找按钮:

          6.2.3.1 利用Tag,但是有时候只能找到一个

          6.2.3.2 利用数组建立带有Tag值的多个控件

                           moviePlayer=[_playArray objectAtIndex:btn.tag-1];

                        【在侧栏的导航中也利用过】

原文地址:https://www.cnblogs.com/Z-D-/p/5734927.html