你好,游客 登录 注册 搜索
背景:
阅读新闻

iOS仿网易新闻客户端左右侧栏

[日期:2013-10-15] 来源:Linux社区  作者:RannieR [字体: ]

左右侧栏已经是当前APP最流行的布局,很多客户端软件都使用了左右侧栏,例如网易新闻,人人网,Weico等等。

这篇博客以当前网易新闻客户端的模式为例仿写了一个左右侧栏架构实现。

先看一下Demo的实现效果

iOS仿网易新闻客户端左右侧栏

iOS仿网易新闻客户端左右侧栏

iOS仿网易新闻客户端左右侧栏

实现主要思路以及细节:

视图控制器有三个视图按不同层次排列,最上层的是主要显示视图_mainContentView,下面的为左右侧栏视图;

点击左侧栏不同按钮压入不同的主视图控制器;

在显示侧栏时点击视图空白区域闭合,利用tap手势;

拖动主页面根据不同的方向和位置进行移动和缩放, 利用pan手势;

向右拖显示左侧栏,向左拖显示右侧栏;

首先,点击左侧栏时,左侧栏将点击的数据模型传给分栏控制器,让其更改主视图内容

iOS仿网易新闻客户端左右侧栏Demo源码下载

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2013年资料/10月/15日/iOS仿网易新闻客户端左右侧栏

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

模型:

@interface ClassModel : NSObject

@property (strong, nonatomic) NSString *title;
@property (strong, nonatomic) NSString *className;
@property (strong, nonatomic) NSString *contentText;
@property (strong, nonatomic) NSString *imageName;

+ (id)classModelWithTitle:(NSString *)title className:(NSString *)className contentText:(NSString *)text andImageName:(NSString *)imageName;

@end

一个工厂方法,模型存入不同选择下的不同视图控制器的具体内容。

以新闻页为例:

ClassModel *newscm = [ClassModel classModelWithTitle:@"新闻" className:@"NewsViewController" contentText:@"新闻视图内容" andImageName:@"sidebar_nav_news"];

来看主视图切换不同界面的方法:

- (void)showContentControllerWithModel:(ClassModel *)model
{
    [self closeSideBar];
   
    UIViewController *controller = _controllersDict[model.className];
    if (!controller)
    {
        Class c = NSClassFromString(model.className);
        HRViewController *vc = [[c alloc] init];
        controller = [[UINavigationController alloc] initWithRootViewController:vc];
       
        vc.contentText = model.contentText;
        [_controllersDict setObject:controller forKey:model.className];
    }
   
    if (_mainContentView.subviews.count > 0)
    {
        UIView *view = [_mainContentView.subviews firstObject];
        [view removeFromSuperview];
    }
   
    controller.view.frame = _mainContentView.frame;
    [_mainContentView addSubview:controller.view];
}

更多详情请继续阅读第2页的内容http://www.linuxidc.com/Linux/2013-10/91441p2.htm

linux
相关资讯       iOS编程  iOS仿网易新闻客户端 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款