代码搭建记事本框架(一)

纠结数天,终于下定决心开始搭建属于自己的记事本。

写在最前面:这两天是有些彷徨,加上重感冒,难受的要死。思路有些混乱,界面想了一下大概,就胡乱的开始了。但是总算是迈出了第一步。

将rootviewcontroller设置为tabbar

   application.statusBarHidden = YES;

    self.window = [[UIWindow alloc]init];
    self.window.frame = [[UIScreen mainScreen]bounds];

    self.window.rootViewController = [[CSMainBarController alloc]init];

    [self.window makeKeyAndVisible  ];

采用的tabbarcontroller 上面套上uinavcontroller  在加上tableviewcontroller 代码如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
//    CSMineTableViewController *mineTabelview = [[CSMineTableViewController alloc]init];
    CSMineTableViewController *mineTable =[[CSMineTableViewController alloc ]init];
    [self setTabbarController:mineTable Title:@"关于我" image:@"tabbar_profile_os7" selectImage:@"tabbar_profile_selected"];
    CSDiaryTableViewController *diaryTable = [[CSDiaryTableViewController alloc]init];
    [self setTabbarController:diaryTable Title:@"哈哈" image:@"tabbar_profile_os7" selectImage:@"tabbar_profile_selected"];

    CSSettingViewController *setView = [[CSSettingViewController alloc]init];
    [self setTabbarController:setView Title:@"饿了" image:@"tabbar_profile_os7" selectImage:@"tabbar_profile_selected"];

    CSDuanZiViewController *duanzi  = [[CSDuanZiViewController alloc]init];
    [self setTabbarController:duanzi Title:@"饿了" image:@"tabbar_profile_os7" selectImage:@"tabbar_profile_selected"];
}
/**
 *   设置对应的tabbar的属性
 *
 *  @param childVC     <#childVC description#>
 *  @param tile        <#tile description#>
 *  @param image       <#image description#>
 *  @param selectImage <#selectImage description#>
 */
-(void)setTabbarController:(UIViewController *)childVC Title:(NSString *)tile image:(NSString *)image selectImage: (NSString *)selectImage
{
//    childVC.title  =tile;
//    childVC.tabBarItem.image = [UIImage imageNamed:image];
//    childVC.tabBarItem.selectedImage = [UIImage imageNamed:selectImage];

    childVC.view.backgroundColor = CSRandomColor;
    childVC.tabBarItem.title = tile;
    childVC.tabBarItem.image = [UIImage imageNamed:image];
    childVC.tabBarItem.selectedImage = [UIImage imageNamed:selectImage];
    [self addChildViewController:childVC];

    CSNavigationViewController *myNav =[[CSNavigationViewController alloc]initWithRootViewController:childVC];
    [self addChildViewController:myNav];
}

通过重构nav中的push方法来判断对应的数据:判断通过push的viewcontroller是不是存在,count>0将隐藏对应的tabbar

/**
 *  拦截push进来的视图
 *
 */
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if (self.viewControllers.count>0) {   //如果push进来的不是栈底控制器的话
        viewController.hidesBottomBarWhenPushed = YES;
    }
    [super pushViewController:viewController animated:YES];
}

给对应的子视图设置对应的伪数据,并且做好相应的点击时间的跳转:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
#warning Incomplete method implementation.
    // Return the number of rows in the section.
    return 20;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString * ID = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID ];

    if (!cell) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"我是第 %ld",(long)indexPath.row];
    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController *myView = [[UIViewController alloc]init];
    myView.view.backgroundColor = [UIColor redColor];
    myView.title = @"diary跳转";
    [self.navigationController pushViewController:myView animated:YES];
}

对应顶部的UIBarButtonItem的点击,建立对应UIBarButtonItem的分类

//重构代码实现点击
    self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithImage:@"navigationbar_friendsearch" highImage:@"navigationbar_friendsearch_highlighted" target:self action:@selector(pop)];

-(void)pop
{
    UIViewController *aboutView = [[UIViewController alloc]init];
    [aboutView.view setBackgroundColor:[UIColor redColor]];
    [self.navigationController pushViewController:aboutView animated:YES];
}

分类中对应的代码:

+(UIBarButtonItem *)itemWithImage:(NSString *)imageName highImage:(NSString *)highImage target:(id)target action:(SEL)action
{
    UIButton *button = [[UIButton alloc]init];
//    button  setImage:imageName forState:<#(UIControlState)#>
    [button   setBackgroundImage:[UIImage imageNamed:imageName ] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];

//    button.frame.size = button.currentBackgroundImage.size;
    CGRect frame = button.frame;
    frame.size = button.currentBackgroundImage.size;
    button.frame = frame;

    [button   addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    return [[UIBarButtonItem alloc]initWithCustomView:button];
}
时间: 2024-12-15 02:44:10

代码搭建记事本框架(一)的相关文章

代码搭建记事本框架(二)

主题设定,初始化的代码,通过执行这些代码来设置对应的navigation和barbutton的属性 /** * 只执行一次的代码 */ +(void)initialize { //设置nav对应的属性. [self setNavigationBarTheme]; //设置barbutton对应的属性. [self setBarButtonTheme ]; } 对应属性的设定 +(void)setBarButtonTheme { // UIBarButtonItem *appearence = [

纯代码搭建项目框架

一.修改项目的启动过程 将Main Interface处的main删除 在application:didFinishLaunchingWithOptions:launchOptions:方法中创建window,并且设置根控制器 // 设置整体主题TabBar的tintColor UITabBar.appearance().tintColor = UIColor.orangeColor() // 1.创建window self.window = UIWindow(frame: UIScreen.m

《用Python写网络爬虫》示例网站搭建(框架+本书pdf+章节代码)

所用到的代码及工具 示例网站源码+框架+本书pdf+章节代码 链接: https://pan.baidu.com/s/1miHjIYk 密码: af35 环境 python2.7 win7x64 示例网站搭建 wswp-places.zip 书中站点源码web2py_src.zip 站点所使用的框架 1 解压web2py_src.zip2 然后到web2py/applications目录下 3 将wswp-places.zip解压到applications目录下 4 返回上一层目录,到web2p

搭建App主流框架_纯代码搭建(OC)

转载自:http://my.oschina.net/hejunbinlan/blog/529778?fromerr=EmSuX7PR 搭建主流框架界面 源码地址在文章末尾 达成效果 效果图 注:本文部分图标及效果图来自[IT江湖] https://github.com/itjhDev/itjh 导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是讨论主体框架的搭建,数据暂时没有添

十分钟搭建App主流框架_纯代码搭建(OC),你不知道的框架

十分钟搭建App主流框架_纯代码搭建(OC),你不知道的框架java学习爱好者 2019-06-11 14:28搭建主流框架界面 需要源码的可以私信我达成效果 效果图ps :需要源码的可以加群,668041364导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条我们本文主要是讨论主体框架的搭建,数据暂时没有添加分析做项目的基本流程 1.搭建项目主框架(1)先搭建tabBarController

使用Eclipse搭建Struts2框架

本文转自http://blog.csdn.net/liaisuo/article/details/9064527 今天在Eclipse搭建了Struts2 框架,并完成了一个很简单的例子程序. 搭建好的全局图如下: 第一步:在http://struts.apache.org/download.cgi下载Struts2的最新版即下载Full Distribution,这是Struts2的完整版 第二步:解压下载的压缩包.在struts-2.3.14.3 -> lib路径下拷贝出上图所示的8个jar

完整搭建SSM框架之黑暗中的摸索

JavaWeb基础该学的都了解过一点了,那么必须要在项目中来练习和升华了(就像高三对数理化的整合练习!) 一共分为三个步骤: 1.环境的选择和准备 2.工程的创建 3.代码和配置文件的创建 环境 工程创建 在pom.xml文件中加入依赖包(去除index.jsp的报错) <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api<

使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架

教程里的案例我们是通过H5游戏引擎开发,目前H5的游戏引擎比较好用的是白鹭,不过对于新手来说白鹭的开发环境和工具使用过于复杂,这里推荐一个国内大神编写的游戏引擎:lufylegend. 直接在页面引入Js文件,就可以开发了,运行效率非常高效,语法是仿AS3语法,懂C#的人上手会很快. Lufylegend引擎具体的API和使用方法可以参考官网和论坛: http://www.lufylegend.com/api/zh_CN/out/classes/FPS.html 之前微信上有一款"怪兽必须死&q

准备.Net转前端开发-WPF界面框架那些事,搭建基础框架

题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开发的程序猿. 现在书看完了也该实践实践,写了个WPF项目,主要以界面框架为主.  最近的几篇博客也主要围绕这个WPF项目,介绍下WPF搭建界面框架以及怎样写自定义的Windows界面和控件. 这也许是写最后几篇关于.Net技术的博客.做.Net开发也快五年了,感觉自己搞得不温不火,另外工作中正好有一个机会转做