IOS彩票第一天基本框架搭建

*****初始化

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    // ios6显示状态栏
    application.statusBarHidden = NO;

    // 设置状态栏的颜色
    application.statusBarStyle = UIStatusBarStyleLightContent;

    return YES;
}

*******ILTabBarViewController.m自定义UITabBarController

#import "ILTabBarViewController.h"

#import "ILTabBar.h"

@interface ILTabBarViewController ()<ILTabBarDelegate>

@end

@implementation ILTabBarViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // 创建tabBar
    ILTabBar *tabBar = [[ILTabBar alloc] init];

    tabBar.delegate = self;

    tabBar.frame = self.tabBar.bounds;

    // 因为系统自动隐藏的是系统自带的tabBar
    [self.tabBar addSubview:tabBar];    //加上自定义的tabBar

    NSString *imageName = nil;

    NSString *selImageName = nil;

    for (int i = 0; i < self.childViewControllers.count; i++) {  //遍历自己管理的Controllers

        imageName = [NSString stringWithFormat:@"TabBar%d",i + 1];
        selImageName = [NSString stringWithFormat:@"TabBar%dSel",i + 1];

        // 添加底部按钮
        [tabBar addTabBarButtonWithName:imageName selName:selImageName];

    }

}

// 代理方法
- (void)tabBar:(ILTabBar *)tabBar didSelectedIndex:(int)index
{
    self.selectedIndex = index;   //点击底部按钮切换
}
@end

************ILTabBarViewController.h

#import <UIKit/UIKit.h>

@interface ILTabBarViewController : UITabBarController

@end

*********ILTabBar.h自定义ILTabBar

#import <UIKit/UIKit.h>
// block作用:保存一段代码,到恰当的时候再去调用

// 如果需要传参数给其他对象,block才需要定义参数
//typedef void(^ILTabBarBlock)(int selectedIndex);

@class ILTabBar;

@protocol ILTabBarDelegate <NSObject>

@optional
- (void)tabBar:(ILTabBar *)tabBar didSelectedIndex:(int)index;

@end

@interface ILTabBar : UIView

//// 相当于小弟
//@property (nonatomic, copy) ILTabBarBlock block;

@property (nonatomic, weak) id<ILTabBarDelegate> delegate;

// 给外界创建按钮
- (void)addTabBarButtonWithName:(NSString *)name selName:(NSString *)selName;

@end

*********ILTabBar.m自定义ILTabBar

#import "ILTabBar.h" 

#import "ILTabBarButton.h"

@interface ILTabBar()

@property (nonatomic, weak) UIButton *selectedButton;

@end

@implementation ILTabBar

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

    }
    return self;
}

// 提供一个方法给外界添加按钮
- (void)addTabBarButtonWithName:(NSString *)name selName:(NSString *)selName
{
    // 创建按钮
    ILTabBarButton *btn = [ILTabBarButton buttonWithType:UIButtonTypeCustom];

    // 设置按钮的图片
    [btn setBackgroundImage:[UIImage imageNamed:name] forState:UIControlStateNormal];

    [btn setBackgroundImage:[UIImage imageNamed:selName] forState:UIControlStateSelected];

    // 监听按钮的点击
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown];

    [self addSubview:btn];

}

// 点击按钮的时候调用
- (void)btnClick:(UIButton *)button
{
    // 取消之前选择按钮
    _selectedButton.selected = NO;
    // 选中当前按钮
    button.selected = YES;
    // 记录当前选中按钮
    _selectedButton = button;

    // 切换控制器
    if ([_delegate respondsToSelector:@selector(tabBar:didSelectedIndex:)]) {
        [_delegate tabBar:self didSelectedIndex:button.tag];
    }

}

#warning 设置按钮的位置
- (void)layoutSubviews
{
    [super layoutSubviews];

    CGFloat btnW = self.bounds.size.width / self.subviews.count;
    CGFloat btnH = self.bounds.size.height;
    CGFloat btnX = 0;
    CGFloat btnY = 0;

    // 设置按钮的尺寸
    for (int i = 0; i < self.subviews.count; i++) {
        UIButton *btn = self.subviews[i];

        // 绑定角标
        btn.tag = i;

        btnX = i * btnW;

        btn.frame = CGRectMake(btnX, btnY, btnW, btnH);

        // 默认选中第一个按钮
        if (i == 0) {
            [self btnClick:btn];
        }
    }

}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

@end

****ILTabBarButton.m自定义UIbutton.m

#import "ILTabBarButton.h"

@implementation ILTabBarButton

// 取消高亮状态
- (void)setHighlighted:(BOOL)highlighted
{
}

@end

***********ILNavigationController.m

#import "ILNavigationController.h"

@interface ILNavigationController ()

@end

@implementation ILNavigationController

// 第一次使用这个类或者这个类的子类的时候
+ (void)initialize
{
    if (self == [ILNavigationController class]) { // 肯定能保证只调用一次
        // 获取应用程序中所有的导航条
        // 获取所有导航条外观
        UINavigationBar *bar = [UINavigationBar appearance];

        UIImage *navImage = nil;

        if (ios7) {
            navImage = [UIImage imageNamed:@"NavBar64"];
        }else{
            navImage = [UIImage imageNamed:@"NavBar"];
        }
        [bar setBackgroundImage:navImage forBarMetrics:UIBarMetricsDefault];

        NSDictionary *dict = @{
                               NSForegroundColorAttributeName : [UIColor whiteColor],
                               NSFontAttributeName : [UIFont systemFontOfSize:15]
                               };
        [bar setTitleTextAttributes:dict];
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"%s",__func__);

}

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated      //跳转隐藏导航栏
{
    viewController.hidesBottomBarWhenPushed = YES;

    return [super pushViewController:viewController animated:animated];
}

@end

*****ILNavigationController.h

#import <UIKit/UIKit.h>

@interface ILNavigationController : UINavigationController

@end

*****我的彩票界面,拉升图片工具 ILLoginViewController.m

#import "ILLoginViewController.h"

#import "UIImage+Tool.h"

@interface ILLoginViewController ()
@property (weak, nonatomic) IBOutlet UIButton *loginBtn;

@end

@implementation ILLoginViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // 设置登录按钮的拉伸好的图片
    [_loginBtn setBackgroundImage:[UIImage imageWithResizableImageName:@"RedButton"] forState:UIControlStateNormal];

    [_loginBtn setBackgroundImage:[UIImage imageWithResizableImageName:@"RedButtonPressed"] forState:UIControlStateHighlighted];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

******UIImage+Tool.m

#import "UIImage+Tool.h"

@implementation UIImage (Tool)

+ (instancetype)imageWithResizableImageName:(NSString *)imageName
{
    UIImage *image = [UIImage imageNamed:imageName];

    image =  [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];

    return image;
}

@end
时间: 2024-11-04 21:04:52

IOS彩票第一天基本框架搭建的相关文章

第一节项目框架搭建

动软代码生成器的使用 创建三个类库项目DAL.BLL.Model,创建两个asp.net应用程序Web:Front(前台).Admin(后台管理).DAL引用Model,BLL引用Model和DAL,Web引用BLL和Model. 如果报错“添加服务器配置失败”,则以管理员身份运行“动软代码生成器”. (*)根据我的表命名规范,配置“动软”的“选项”→“代码生成器设置”,命名规则中“替换表中的字符”填“T_”(大小写敏感),“类命名规则”中,除了Model最后一个文本框留空之外,其他两个填BLL

iOS 新浪微博-1.1框架升级

在iOS 新浪微博-1.0框架搭建 中,使用的是xcode5.1.1开发.现在把重整了一下框架 改为xcode7.0开发 使用cocoaPad管理第三方库 程序将托管到github上 在改为xcode7.0开发的过程中,有几个地方是要设置的. 添加启动图片 第一步:添加LaunchImage 第二步:设置App Icons and Launch Images,修改成下图所示. Launch Images Source 设置为 LaunchImage Launch Screen File 请空 第

ThinkPHP框架搭建及常见问题(Apache或MySQL无法启动)

第一部分:框架搭建 我也是刚接触ThinkPHP,所以将目前的心得以及学习步骤按照我认为更容易理解的方式记录下来. 要使用ThinkPHP首先是要把环境搭建好,下面两个大体步骤来介绍: 第一步:下载软件 1.Xmapp(此软件将Apache.MySQL等集成了,使用起来很方便) 2.ThinkPHP3.2.3下载 这是我的网盘,里面有相关软件http://pan.baidu.com/disk/home?fr=ibaidu#list/path=%2F 第二步:搭建框架 1.将xmapp安装好,我们

Unity 游戏框架搭建 2019 (九~十二) 第一章小结&amp;第二章简介&amp;第八个示例

第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示例中有的是我们后续库的基础工具,也有的是在项目中非常实用的小工具,还有一些示例是实践了在框架搭建方向上非常重要的 C# 语法知识. 第二章大纲如下. 第八个示例(一) 在之前,我们完成了一个导出的功能.但是在完成这个功能的过程中,我们也遇到了一些问题.我们回忆一下,在<MenuItem 复用>的这

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

iOS开发-常用第三方开源框架介绍

iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下G

iOS开发——实战OC篇&amp;环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)

环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自己正打算开始着手做一个项目,可是不知道怎么下手,感觉前面学了好多,可是回头想想却又很难下手,其中最主要的就是第一步环境的搭建,当然在这之前还有选题和素材,但是那些对于ios开发来说都不是技术上的问题或者在以后公司里面一半都不是我们所考虑的.所以今天开始我将以三篇简短但又实用的文章给大家介绍一下,怎么搭建一个

仿制新浪微博iOS客户端之二-项目基础搭建及相关设置

上一次的文章主要提到了仿制新浪微博所用到的一些技术和知识点,那本文就开始进入正式的项目实施阶段了.首先要做的自然是项目的创建和相关的设置,以及基础框架的搭建了. 一.项目创建及相关设置 1.项目创建 现在越来越多的的公司开始使用Swift开发iOS和AppleWatch的项目,因此此次我们的开发也使用Swift语言来进行,新建项目,设置如下: 既然是仿制,自然可以当成是一个练习,项目名称:“WeiboTest”,编程语言选择“Swift”.然后“下一步”直到创建完成. 2.应用图标设置 将应用图

IOS开发比较实用的框架总结(上)

下拉刷新类型的框架 [EGOTableViewPullRefresh](https://github.com/enormego/EGOTableViewPullRefresh) - 最早的下拉刷新控件. [SVPullToRefresh](https://github.com/samvermette/SVPullToRefresh) - 下拉刷新控件. [MJRefresh](https://github.com/CoderMJLee/MJRefresh) - 仅需一行代码就可以为UITable