IOS个人项目-微博
来源:互联网 发布:手机测试分贝软件 编辑:程序博客网 时间:2024/06/04 18:18
一、基本配置以及主体框架
项目主体架构:用tabBarController为根控制器,四个navigationController为它的子控制器,这四个navi管理各自的VC.项目文件夹类型:用MVC的方式分类,大概为四个模块,在ohter文件夹中放入必要的分类文件跟扩展文件以及常用第三方,创建pch文件,设置路径
拖入启动图片跟appIcon,初始化window,设置根VC为自定义的tabBarVC,创建子控制器时,抽出一个方法
/**
* 初始化子控制器
*/
- (void)setupChildVc:(UIViewController )vc title:(NSString )title image:(NSString )image selectedImage:(NSString )selectedImage
{
// 设置文字和图片 vc.tabBarItem.title = title;vc.tabBarItem.image = [UIImage imageNamed:image];vc.tabBarItem.selectedImage = [UIImage imageNamed:selectedImage];vc.view.backgroundColor = [UIColor colorWithRed:arc4random_uniform(100)/100.0 green:arc4random_uniform(100)/100.0 blue:arc4random_uniform(100)/100.0 alpha:1.0];// 包装一个导航控制器, 添加导航控制器为tabbarcontroller的子控制器UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];[self addChildViewController:nav];
}
后面带有UI_APPEARANCE_SELECTOR的方法, 都可以通过appearance对象来统一设置
// 通过appearance统一设置所有UITabBarItem的文字属性NSMutableDictionary *attrs = [NSMutableDictionary dictionary];attrs[NSFontAttributeName] = [UIFont systemFontOfSize:12];attrs[NSForegroundColorAttributeName] = [UIColor grayColor];NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];selectedAttrs[NSFontAttributeName] = attrs[NSFontAttributeName];selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];UITabBarItem *item = [UITabBarItem appearance];[item setTitleTextAttributes:attrs forState:UIControlStateNormal];[item setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
由于tabBar中间的按钮特殊性,考虑自定义tabBar的方式(由于tabBar是只读属性,故用kvc自定义)
[self setValue:[[XMGTabBar alloc] init] forKeyPath:@"tabBar"];
在自定义的tabBar文件里面,由于是通过代码创建,只需重写- (instancetype)initWithFrame:(CGRect)frame方法,在此方法里面创建中间的发布按钮,并layoutSubViews方法里面设置坐标
在设置导航栏左边按钮中,发现创建按钮的代码可以抽出来
// 设置导航栏标题self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MainTitle"]];// 设置导航栏左边的按钮UIButton *tagButton = [UIButton buttonWithType:UIButtonTypeCustom];[tagButton setBackgroundImage:[UIImage imageNamed:@"MainTagSubIcon"] forState:UIControlStateNormal];[tagButton setBackgroundImage:[UIImage imageNamed:@"MainTagSubIconClick"] forState:UIControlStateHighlighted];tagButton.size = tagButton.currentBackgroundImage.size;[tagButton addTarget:self action:@selector(tagClick) forControlEvents:UIControlEventTouchUpInside];self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tagButton];
为UIBarButtonItem写一个分类
@interface UIBarButtonItem (XMGExtension)+ (instancetype)itemWithImage:(NSString *)image highImage:(NSString *)highImage target:(id)target action:(SEL)action;@end
@implementation UIBarButtonItem (XMGExtension) + (instancetype)itemWithImage:(NSString *)image highImage:(NSString *)highImage target:(id)target action:(SEL)action { UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal]; [button setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted]; button.size = button.currentBackgroundImage.size; [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; return [[self alloc] initWithCustomView:button]; } @end
0 0
- IOS个人项目-微博
- 如何架构一个ios项目 个人经验总结
- 如何架构一个ios项目 个人经验总结
- 如何架构一个ios项目 个人经验总结
- 如何架构一个ios项目 个人经验总结
- 如何架构一个ios项目 个人经验总结
- iOS第一个项目错误个人整理
- iOS个人项目经验及编码规范
- 使用git/github管理ios项目 个人总结
- 使用git/github管理ios项目 个人总结
- 使用git/github管理ios项目 个人总结
- 个人iOS项目常用效果方法注意点集锦
- 个人项目
- 个人项目
- 透过个人ios经验,说下自己的一个实习项目
- [IOS APP][2015.10.25]CPU Utility V1.0.0 个人项目完成
- 个人iOS项目常用效果方法注意点集锦(上)----简书
- iOS实战项目:属于2个人的地图(共享实时位置,泡妞专用)
- Windows下 免安装版MySQL配置
- unity插件使用--Unitybmob插件使用记录
- 数据库事务隔离级别
- 本博客搬迁
- Oracle字段类型
- IOS个人项目-微博
- ++i 和 i++ 的理解
- ForEach
- Shell echo-使用echo实现更复杂的输出格式控制
- 鲤鱼日语:第一个自己的安卓APP
- Python: Matplotlab 的 figure转换为numpy的arrary方法
- IoRegisterPlugPlayNotification源码分析
- 孤独
- 【实(dou)力(bi)首(mai)发(meng)】第四次CCF软件能力认证题解