iOS 网易彩票-1框架搭建

仿网易彩票,最终要做成的效果如下:

一、分层搭建

1.新建一个项目,Lottery.只支持7.1以上坚屏。

2.将素材全部图片全部拉到相应的文件夹里。

3.选中Lottery--右键Show in Finder ,在Lottery文件夹下新建一个Classes,并分别分层成MVC文件夹。

4.把Classes拉到Lottery项目里,整个框架结构如

二、UI搭建

分层好之后,接下来,我们搭建一下界面。使用Storyboard进行搭建。

1.点击Main.storyboard,删除原来的界面,分别拉入TabBar Controller和5个Navigation Controller。删除Navigation Controller自带的TableViewController,我们拉入自己的ViewController.

TabBar Controller与Navigation Controller关联

Navigation Controller与View Controller 关联

2.分别修改Navigation Controller与View Controller的显示名称

 

3.最终界面的导航效果

4.运行后的效果

三、代码实现

UI搭建完之后,我们发现系统自带的底部的导航栏,点击是蓝色,设置不了整一块的图片。因此,接下来,我们是自定义一个底部导航栏。

1.自定义一个MJTabBarController ,继承UITabBarController

MJTabBarController.m

#import "MJTabBarController.h"

@interface MJTabBarController ()
/**
 *  记录当前选中的按钮
 */
@property (nonatomic, weak) UIButton *selectedButton;
@end

@implementation MJTabBarController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 1.移除系统自带的tabbar
    [self.tabBar removeFromSuperview];
    
    // 2.添加自己的tabbar
    UIView *myTabBar = [[UIView alloc] init];
    myTabBar.frame = self.tabBar.frame;
    myTabBar.backgroundColor = [UIColor greenColor];
    [self.view addSubview:myTabBar];
    
    // 3.添加5个按钮
    for (int i = 0; i<5; i++) {
        // 创建按钮
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.tag = i;
        
        // 设置图片
        NSString *name = [NSString stringWithFormat:@"TabBar%d", i + 1];
        [button setBackgroundImage:[UIImage imageNamed:name] forState:UIControlStateNormal];
        
        NSString *selectedName = [NSString stringWithFormat:@"TabBar%dSel", i + 1];
        [button setBackgroundImage:[UIImage imageNamed:selectedName] forState:UIControlStateSelected];
        
        // 设置frame
        CGFloat buttonY = 0;
        CGFloat buttonW = myTabBar.frame.size.width * 0.2;
        CGFloat buttonH = myTabBar.frame.size.height;
        CGFloat buttonX = i * buttonW;
        button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);
        
        // 添加
        [myTabBar addSubview:button];
        
        // 监听
        [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchDown];
        
        // 默认选中第0个位置的按钮(点击了这个按钮)
        if (i == 0) {
            [self buttonClick:button];
        }
    }
}
    /**
     *  监听按钮点击
     */
- (void)buttonClick:(UIButton *)button
   {
        // 1.让当前选中的按钮取消选中
        self.selectedButton.selected = NO;
        
        // 2.让新点击的按钮选中
        button.selected = YES;
        
        // 3.新点击的按钮就成为了"当前选中的按钮"
        self.selectedButton = button;
        
        // 4.切换子控制器
        self.selectedIndex = button.tag;
    }
@end

运行效果:

 

源代码下载:点击下载

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值