zoukankan      html  css  js  c++  java
  • objective-III 窗口应用程序

    objective-III

    一、创建窗口应用程序 
    打开xcode->create->在iso目录下选择empty-null->创建
    在打开的项目文件名上右击NEW FILE,在ios下选择objective-c,next->在Class中输入类名FirstViewController,在Subclass of中选择父类UIViewController,在With XIB
     for user interface上打上勾->next->create 
    这样就创建好了一个OC窗口文件,在目录下生成了.m、.h、.xib(视图文件)三个文件
    在入口方法main方法中一般不做任何改变,因为main方法中的

    return UIApplicationMain(argc, argv, nil,NSStringFromClass([AppDelegateclass]));//直接跳转到AppDelegate类,因此我们一般在AppDelegate中进行设计

    二、添加页面背景及相应组件
    First:用拖拽的方式进行组件的添加
    1、打开创建好的新页面的.xib文件,在右下角选择页面背景组件,用鼠标左键将其拖拽到页面上,然后在其属性文件Image View中的Image中选择背景图片。这样一张背景图片就添加好了
    2、同样。在组件区域选择label组件和Text组件及Button组件将其添加到页面中,并在其属性的Text中(或者双击)更改显示文字
          将Text文本框更改成密码输入框时,只需要在其属性中将Control上面的Secure选项打上勾即可
    3、将创建好的页面加载到显示页中,将其显示出来
           因为系统默认的第一显示页为AppDelegate,因此,我们想要系统显示我们自己创建的页面,必须在AppDelegate.m文件中更改第一显示页
    AppDelegate.m文件【更改application方法】

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    {

        self.window = [[[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]]autorelease];//当前窗口的大小

        // Override point for customization after application launch.

        self.window.backgroundColor = [UIColorwhiteColor];//当前窗口的颜色

    //    self.window.backgroundColor=[UIColor yellowColor];

        FirstViewController *first=[[FirstViewControlleralloc]init];//创建一个窗口对象

        self.window.rootViewController=first;//将创建好的first页面作为第一视图进行展示

        [self.windowmakeKeyAndVisible];//显示窗口

        returnYES;

    }

    4、点击Run就可以看到我们自定义的页面了
    Second:用代码的形式进行组件的添加
    除了用环境给定义的组件视图之外,我们还可以用代码的形式进行组件的添加。
    我们创建的新页面FirstViewController的.m文件中有三个方法:初始化方法initWithNibName、页面加载时的方法viewDidLoad以及系统自动调用的方法didReceiveMemoryWarning(当内存不够时,系统自动调用此方法,释放掉一些变量等)
    更改viewDidLoad方法,自定义我们的组件,代码如下:

    - (void)viewDidLoad//当前页面加载的时候调用的方法。

    {//一般写组建的创建和属性、变量的初始化

        [superviewDidLoad];

       //用代码的形式创建组件

       //1、实例化一个对象

       UILabel *la=[[UILabelalloc]init];

       //2、设置组件的相关属性 [整个页面的坐标系从左上角开始(往下x增大,往右x增大)]

        la.frame=CGRectMake(20,30, 280, 50);//坐标和组件的大小四个参数值分别为:x值,y值,组件宽度,组件高度

        la.text=@"滨州学院内部系统";//标签要显示的内容

        la.textAlignment=NSTextAlignmentCenter;//居中对齐

        la.backgroundColor=[UIColorclearColor];//背景颜色为透明色

        la.textColor=[UIColorredColor];//字体颜色

        la.font=[UIFontsystemFontOfSize:30];//字体大小

       //3、将这个组件加载到当前视图

        [self.viewaddSubview:la];

        // Do any additional setup after loading the view from its nib.

    }

    三、关联拖拽组件和代码
    视图下,在视图界面选择要关联的组件,按住ctrl键加用鼠标左键将其拖拽到代码界面的@end和@interface之间
    此时出现一个对话框(connect 表示连接的类型,文本框一般选默认 ,按钮一般选action;name为连接的组件的名字,自定义)点击connect就完成了组件和代码的连接
    1、实现的一些效果:
          I、在自定义的界面FirstViewController的.m文件中 默认继承了父类的touchesBegan方法,重写次方法,实现点击屏幕,让输入键盘退下的效果
    在.m文件中

    //-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event//点击屏幕取消时调用的方法,即当你正在点击屏幕,此时来电话了所触发的方法

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event//点击屏幕时触发的事件

    {

       UITouch *t=[touches anyObject];//得到点击屏幕的位置

        if (![t.viewisMemberOfClass:[UITextFieldclass]]) {//t.view isMemberOfClass:]判断点击的对象是不是输入框  UITextField class:不是输入框

           //如果点击的组件不是输入框,就让键盘退下去

           [self.uerNameresignFirstResponder];//取消掉userName的第一相应者(就是让userName组件失去焦点,不再屏幕上作为第一焦点出现)

            //resignFirstResponder:取消第一相应者(即焦点)

            [self.passWordresignFirstResponder];//同上

     

        }

        

    }

       II、实现页面跳转的效果

    同样在.m文件中   代码如下

     

    //登陆按钮的监听事件

    - (IBAction)login:(id)sender {

        //如果用户名为admin,密码为123则进行跳转,跳转到second页面

     

       //self:当前对象 self.uerName.text:取得当前页面的名为uerName的输入框中的输入的字符

     

        if ([self.uerName.textisEqualToString:@"admin"]&&[self.passWord.textisEqualToString:@"123"])

        {

            SecondViewController *second=[[SecondViewControlleralloc]init];//创建第二个页面

            //设置页面跳转的动画效果

            second.modalTransitionStyle=UIModalTransitionStyleCoverVertical;//设置页面跳转的动画效果

            //modalTransitionStyle的值为一个枚举类型其值有如下四个:

    //        UIModalTransitionStyleCoverVertical = 0,//从下往上推送

    //        UIModalTransitionStyleFlipHorizontal,//翻转

    //        UIModalTransitionStyleCrossDissolve,//渐变

    //        UIModalTransitionStylePartialCurl,//半翻页

            [selfpresentViewController:secondanimated:YEScompletion:nil];//second为将要跳转的页面   animated:是否要有动画效果  completion:传递的参数

        }

       }


    四、提示框组件

    在自定义的SecondViewController页面的.m文件中添加button按钮,然后设置单击监听事件,单击时弹出提示框

    在SecondViewController自定义界面的.m文件中代码如下:

     

    - (void)viewDidLoad

    {

        [superviewDidLoad];

        //设置提示框组件

        //第一步、创建一个圆角按钮

        UIButton *but=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];

        //第二步、设置组件属性

        [but setTitle:@"点击这里" forState:UIControlStateNormal];//在普通状态下得title

        [but addTarget:selfaction:@selector(showAlert)forControlEvents:UIControlEventTouchUpInside];//添加监听事件

        but.frame=CGRectMake(120,100, 80, 40);//坐标大小

        //第三步将组件添加到当前视图上

        [self.viewaddSubview:but];

        

        // Do any additional setup after loading the view from its nib.

    }

    //弹出提示函数  与调用组件中的selector函数名必须保持一致

    -(void)showAlert

    {

        //UIAlertView 为提示框类   创建一个提示框组件

        UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:@"提示"message:@"你太聪明了,都写对了" delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"确定",nil];

        [alert show];//弹出提示框

    }




    注:在资源中有附带的完整项目的源码

  • 相关阅读:
    11.11 程序员的 1111 种死法
    护航11.11,如何筑牢安全防御系统?
    如何应对大促流量洪峰?揭秘京东技术人的备战手册
    TIOBE 11 月编程语言:Java 首次跌出前二;基于Pytorch的Kornia可微分计算机视觉库开源
    会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?
    “开源软件供应链点亮计划
    走进京东 | 中国空间技术研究院青年创新联盟成员莅临参观京东总部
    深度解读展会场景智能推荐搭建之路 | 会展云技术解读
    第一届“多模态自然语言处理研讨会”精彩回顾(免费获取PPT)
    AI 科学家带你快速 Get 人工智能最热技术
  • 原文地址:https://www.cnblogs.com/riskyer/p/3325036.html
Copyright © 2011-2022 走看看