• iOS: 学习笔记实例, 用代码控制视图创建与切换


    1. 创建iOS, Single View Application.
    2. 修改YYViewController.m

    //
    //  YYViewController.m
    //  DynamicViewDemo
    //
    //  Created by yao_yu on 14-5-28.
    //  Copyright (c) 2014年 yao_yu. All rights reserved.
    //
    
    #import "YYViewController.h"
    
    @interface YYViewController ()
    
    @property(nonatomic, strong) UIView *body;
    
    @property (nonatomic, strong) UIView *currentPage;
    
    @end
    
    const CGFloat HEIGHTEDGE = 40;
    
    @implementation YYViewController
    
    -(void)createBodyView
    {
        CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
        CGRect parentFrame = self.view.frame;
        CGRect bodyFrame = CGRectMake(parentFrame.origin.x, parentFrame.origin.y + statusBarFrame.size.height + HEIGHTEDGE, parentFrame.size.width, parentFrame.size.height -  statusBarFrame.size.height - HEIGHTEDGE);
        self.body = [[UIView alloc] initWithFrame:bodyFrame];
        [self.body setBackgroundColor:[UIColor blackColor]];
        [self.view addSubview:self.body];
    }
    
    -(void)createCommands
    {
        CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
        CGRect parentFrame = self.view.frame;
        CGRect bodyFrame = CGRectMake(parentFrame.origin.x, parentFrame.origin.y + statusBarFrame.size.height, parentFrame.size.width, HEIGHTEDGE);
        UIView *view = [[UIView alloc] initWithFrame:bodyFrame];
        [view setBackgroundColor:[UIColor redColor]];
        [self.view addSubview:view];
        
        //添加命令按钮
        const CGFloat COMMANDWIDTH = 50;
        const CGFloat COMMANDHEIGHT = 30;
        CGFloat midx = bodyFrame.size.width/2;
        CGFloat midy = bodyFrame.size.height/2;
        CGRect rect = CGRectMake(midx - COMMANDWIDTH/2, midy - COMMANDHEIGHT/2, COMMANDWIDTH, COMMANDHEIGHT);
        UIButton *btnPage1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btnPage1 setBackgroundColor:[UIColor clearColor]];
        [btnPage1 setTitle:@"第1页" forState:UIControlStateNormal];
        rect.origin.x -= COMMANDWIDTH + 20;
        btnPage1.frame = rect;
        [btnPage1 addTarget:self action:@selector(onShowPage1:) forControlEvents:UIControlEventTouchUpInside];
        [view addSubview:btnPage1];
        
        btnPage1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btnPage1 setTitle:@"第2页" forState:UIControlStateNormal];
        rect.origin.x += COMMANDWIDTH + 20;
        btnPage1.frame = rect;
        [btnPage1 addTarget:self action:@selector(onShowPage2:) forControlEvents:UIControlEventTouchUpInside];
        [view addSubview:btnPage1];
        
        btnPage1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btnPage1 setTitle:@"第3页" forState:UIControlStateNormal];
        rect.origin.x += COMMANDWIDTH + 20;
        btnPage1.frame = rect;
        [btnPage1 addTarget:self action:@selector(onShowPage3:) forControlEvents:UIControlEventTouchUpInside];
        [view addSubview:btnPage1];
        
    }
    
    -(void) onShowPage1:(id)sender
    {
        [self clearCurrentPage];
        CGRect frame = CGRectMake(0, 0, self.body.frame.size.width, self.body.frame.size.height);
        self.currentPage = [[UIView alloc] initWithFrame: frame];
        [self.currentPage setBackgroundColor:[UIColor blueColor]];
        [self.body addSubview:self.currentPage];
    }
    
    -(void) onShowPage2:(id)sender
    {
        [self clearCurrentPage];
        CGRect frame = CGRectMake(0, 0, self.body.frame.size.width, self.body.frame.size.height);
        self.currentPage = [[UIView alloc] initWithFrame: frame];
        [self.currentPage setBackgroundColor:[UIColor yellowColor]];
        [self.body addSubview:self.currentPage];
    }
    
    
    -(void) onShowPage3:(id)sender
    {
        [self clearCurrentPage];
        CGRect frame = CGRectMake(0, 0, self.body.frame.size.width, self.body.frame.size.height);
        self.currentPage = [[UIView alloc] initWithFrame: frame];
        [self.currentPage setBackgroundColor:[UIColor greenColor]];
        [self.body addSubview:self.currentPage];
    }
    
    -(void) clearCurrentPage
    {
        if (self.currentPage)
            [self.currentPage removeFromSuperview];
        self.currentPage = nil;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.currentPage = nil;
        [self createBodyView];
        [self createCommands];
    	// Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    

     3.运行

  • 相关阅读:
    连续点击来回切换执行回调函数
    css 属性
    html 手机web超出屏幕宽度的内容不换行,并产生横向滚动条
    生活若失去了物质,哪有资格祈求过的开心
    第一天创建自己的博客,有点小激动!?
    挣值分析法
    PMP--论文部分
    软件项目估算之代码行估算方法
    版本管理:配置项版本号规则
    最大最小准则(悲观准则)
  • 原文地址:https://www.cnblogs.com/yaoyu126/p/3757488.html
Copyright © 2020-2023  润新知