iOS项目基本框架

前传

下午闲来无事写了一个项目初始的框架,简单的做了自定义tabbar和NavgationBar,写了一个父类利用cocoapods集成了常用的几个三方框架,不过没有进行在封装后期还会添加内容,适合入门者来学习,大神勿喷.

正题

样式如下图

123.jpg

中间的按钮如果不想要可以到TYTabBar.m中把创建Button的代码注释掉即可,返回按钮也是自定义,利用UIBarButtonItem添加的分类进行定义,抽取出一个类方法

+(instancetype)itemWithImageNamed:(NSString *)imageName  target:(id)target action:(SEL)action
{
    UIButton * btn = [[UIButton alloc]init];
    [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
    NSString * highImageName = [imageName stringByAppendingString:@"-click"];
    [btn setImage:[UIImage imageNamed:highImageName] forState:UIControlStateHighlighted];
    [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    [btn sizeToFit];
    return [[UIBarButtonItem alloc]initWithCustomView:btn];
}

自定义tabBar也用了当下用的比较多的利用KVC替换系统的tabBar

TYTabBar * tabBar = [[TYTabBar alloc]init];
    [self setValue:tabBar forKey:@"tabBar"];

希望一起参与进来一起进步,一些常用工具类,后期会慢慢添加.

添加启动页的出现动画,最少需要4张图,我比较懒放了2张

    CGSize viewSize = self.window.bounds.size;
    NSString *viewOrientation = @"Portrait";    //横屏请设置成 @"Landscape"
    NSString *launchImage = nil;
//获取系统的UILaunchImage数组
    NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    for (NSDictionary* dict in imagesDict)
    {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        
        if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
        {
            launchImage = dict[@"UILaunchImageName"];
            
        }
    }
    UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:launchImage]];
    launchView.frame = self.window.bounds;
    launchView.contentMode = UIViewContentModeScaleAspectFill;
    [self.window addSubview:launchView];
    [UIView animateWithDuration:2.0f
                          delay:0.0f
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^{
                         
                         launchView.alpha = 0.0f;
                         launchView.layer.transform = CATransform3DScale(CATransform3DIdentity, 1.2, 1.2, 1);
                         
                     }
                     completion:^(BOOL finished) {
                         
                         [launchView removeFromSuperview];
                         
                     }];

不多说上代码
git地址,点击下载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,856评论 25 709
  • 不写东西,好多年,提笔往往苍白一片,日子过得像白开水,曾经缤纷的梦想,也被日子漂白了大半。今日的分分秒秒过去了...
    奕蘅王阅读 994评论 0 0
  • 通过config命令npm config set registry https://registry.npm.ta...
    onbug阅读 1,235评论 0 0
  • 成就: 3月起减少加班时间,动手烹饪,外卖不超过5次 渐渐找到雅思学习方法 坚持两周健康作息 一个月菜品没重样,下...
    Amor__oO阅读 1,215评论 0 0
  • 2017.8.26 星期六晴 今天下午从青岛回来了,想了想还是提前回来了,我的脚不行,疼的厉害。主要会场也没人,顾...
    张萌张迪妈妈阅读 1,508评论 0 1