iOS开发中的视图和各种基础控件----Swift

原创 2016年06月01日 22:04:02

学习Swift也有一段时间了,也是和OC一样在自学,比OC更操蛋的是,这个只是在工作之余学习的,不过有过面向对象的基础,学起这个很容易上手。现在在这里写的直接就是开发中UI控件的创建和使用。因为,单纯的讲语言语法比较枯燥,无聊。有相关的语法在后面用到的话在穿插进来将这样的话可能会更容易理解一点。用过OC开发的话,其实对于我下面写的你一看就懂了。因为说的都是控件的使用,只是用不同的语言罢了。根本不用过多的停留。下面直接小试牛刀一下。大牛勿喷.....:).....


用Swift创建工程,Xcode默认会创建几个文件,和OC中一样的。会默认生成 viewDidLoad 和 didReceiveMemoryWarning 方法。


直接到相应的控制器中写东西就好。

一:UIView

文字上的东西就不多说了,码农都喜欢看代码。

//view
     func uiviewset(){
        let view1=UIView(frame: CGRectMake(10, 50, 200, 200))
        let view2=UIView(frame: CGRectMake(60, 100, 200, 200))
        let view3=UIView(frame: CGRectMake(110, 150, 200, 200))
        view1.backgroundColor=UIColor.redColor()
        view2.backgroundColor=UIColor.greenColor()
        view3.backgroundColor=UIColor.blueColor()
        //先添加view1,再添加view2,最后添加view3  所以view2在view3 的下面 view1在view2的下面
        self.view.addSubview(view1)
        self.view.addSubview(view2)
        self.view.addSubview(view3)
        //透明度
        view1.alpha = 0.8
        //tag属性
        view1.tag = 10
        
        //将view1挪到最上边
        //       self.view.bringSubviewToFront(view1)
        
        //将view1挪到最下边
        //       self.view.sendSubviewToBack(view2)
        
        //互换
        //       self.view.exchangeSubviewAtIndex(3, withSubviewAtIndex: 2)
        
        //view的移除
        view2.removeFromSuperview()
        
        //还有View的动画,不在这里讲,有时间在新开文章详细讲动画的相关问题
    }


二:UILable

//UILable
     func Lableset(){
        
        let lable = UILabel(frame:CGRectMake(50,50,100,25))
        lable.text = "Swift--Test"
        self.view.addSubview(lable)

        //做过的都知道,UILable在默认情况下是背景色为透明,走对齐方式,单行显示的。
        
        lable.backgroundColor = UIColor.yellowColor()
        lable.textColor = UIColor.blueColor()
        //阴影
        lable.shadowColor = UIColor.yellowColor()
        lable.shadowOffset = CGSizeMake(2, 2)
        
        //字体,大小
        lable.font = UIFont.systemFontOfSize(15)
        lable.font = UIFont.boldSystemFontOfSize(15)//在加粗
        lable.font = UIFont.italicSystemFontOfSize(15)//斜体,但对中文无效
        //指定字体名称来创建字体
        lable.font = UIFont(name:"Courier",size: 15)
        let array = UIFont.familyNames()//可获得系统支持的所有字体名称
        print(array)
        //通过字体文件(.ttf)来创建字体。这个在这里先不说,后面另外起一篇专门来说通过下载的.ttf文件来创建字体
        
        //对齐方式
        lable.textAlignment = NSTextAlignment.Center
        /*
          Left
          Center
          Right
          Justified
          Natural
         */
        //设置文本自适应和能最小的缩放比例。
        lable.adjustsFontSizeToFitWidth = true
        lable.minimumScaleFactor = 0.6
        //设置多行显示
        lable.numberOfLines = 0
        //设置换行方法
        lable.lineBreakMode = .ByWordWrapping
        /*
          ByWordWrapping (default)
          ByCharWrapping
          ByClipping
          ByTruncatingHead // Truncate at head of line: "...wxyz"
          ByTruncatingTail // Truncate at tail of line: "abcd..."
          ByTruncatingMiddle
         */
    }

三:UIButton

      //button
     func buttonset(){
    
        let btn = UIButton(frame:CGRectMake(20,70,200,40))
        btn.backgroundColor = UIColor.yellowColor()
        self.view .addSubview(btn)
        //创建一个ContactAdd类型的按钮
        let button:UIButton = UIButton(type:.Custom)
        //设置按钮位置和大小
        button.frame=CGRectMake(10, 150, 100, 30)
        //设置按钮文字
        button.setTitle("按钮", forState:UIControlState.Normal)
        button.setTitle("普通状态", forState:UIControlState.Normal) //普通状态下的文字
        button.setTitle("触摸状态", forState:UIControlState.Highlighted) //触摸状态下的文字
        button.setTitle("禁用状态", forState:UIControlState.Disabled) //禁用状态下的文字
        button.setTitleColor(UIColor.blackColor(),forState: .Normal) //普通状态下文字的颜色
        button.setTitleColor(UIColor.greenColor(),forState: .Highlighted) //触摸状态下文字的颜色
        button.setTitleColor(UIColor.grayColor(),forState: .Disabled) //禁用状态下文字的颜色
        button.setTitleShadowColor(UIColor.greenColor(),forState:.Normal) //普通状态下文字阴影的颜色
        button.setTitleShadowColor(UIColor.yellowColor(),forState:.Highlighted) //高亮状态下文字阴影的颜色
        button.setTitleShadowColor(UIColor.grayColor(),forState:.Disabled) //禁用状态下文字阴影的颜色
        
        button.setImage(UIImage(named:"icon1"),forState:.Normal)  //设置图标
        button.adjustsImageWhenHighlighted=false //使触摸模式下按钮也不会变暗
        button.adjustsImageWhenDisabled=false //使禁用模式下按钮也不会变暗
        
        button.setBackgroundImage(UIImage(named:"background1"),forState:.Normal)

       //添加点击事件

        button.addTarget(self, action:#selector(ViewController.Click), forControlEvents: UIControlEvents.TouchUpInside)       

        self.view.addSubview(button);
        /**
         TouchDown:单点触摸按下事件,点触屏幕
         TouchDownRepeat:多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指的时候
         TouchDragInside:触摸在控件内拖动时
         TouchDragOutside:触摸在控件外拖动时
         TouchDragEnter:触摸从控件之外拖动到内部时
         TouchDragExit:触摸从控件内部拖动到外部时
         TouchUpInside:在控件之内触摸并抬起事件
         TouchUpOutside:在控件之外触摸抬起事件
         TouchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断
         */ 

}

//按钮的点击事件
    func Click(){
        print("ButtonClick")
    
    }

相应的效果图就不上了,一看就知道会出现什么效果了...............



四:UIImageView

UIImageView是专门用来显示图片的控件,它的创建方法有三种,对应的分别是它的三个构造方法

1.init ( frame:CGRect )     继承自UIView的构造方法

2.init ( image: UIImage!)       这种方法创建出来的UIImageView的大小是图片的大小

3.init ( image:UIImage! , highlightedImage:UIImage?)      第一个参数为正常模式下的图片, 第二个为高亮状态下的图片。

下面代码说话

方法一:
        let img = UIImage(named: "123.png")
        let imgv = UIImageView(frame:CGRectMake(50, 50, 200, 50))
        imgv.image = img
        self.view .addSubview(imgv)


方法二:

        let img = UIImage (named: "123.png")
        let imgv = UIImageView(image: img)
        imgv.frame = CGRectMake(50, 50, 200, 50)
        self.view .addSubview(imgv)

方法三:

        let img = UIImage (named: "123.png")
        let img2 = UIImage(named: "456.png")
        let imgv = UIImageView(image: img,highlightedImage: img2)
        imgv.frame = CGRectMake(50, 50, 200, 50)
//        imgv.highlighted = true
        self.view .addSubview(imgv)

以上三种方法创建出来的UIImageView运行效果一样。如下图所示。

对于第三种方法,第二个参数是在高亮状态下的图片,在tableView视图中点击每个cell时,图片可以显示为高亮状态,当然也可以手动设置。

      imgv.highlighted = true

这样的话运行显示的就是高亮状态下的图片。如下图所示。


UIImageView当然也还有其他属性,例如,BackgroundColor   ,  userInteractionEnabled(Bool)等。这里就不多说了。

有关使用UIImageView实现动画和UIImage的图片拉伸有时间另起博文来说。这里就讲基础控件的创建和基本的属性。


五:UITextField单行文本框

UITextField是用来生成单行文本框的类,见过输入账号和密码那个吧。对,这里讲的就是那个鬼了。

这个控件相对应的属性比较多,例如,边框,颜色,对齐方式,文字清除模式和显示模式,第一响应者以及会涉及到键盘等。

今天就先到者了。

---------------------------------------------------------------------  我是分割线  ----------------------------------------------------------------------------




更新中。。。。。。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Swift基础教程(swift代码创建第一个控件之UILabel)

首先 给需要创建的label 设置frame let textLabel = UILabel(frame:CGRectMake(self.view.frame.size.width/8,20,s...
  • yangchen9931
  • yangchen9931
  • 2015年04月29日 22:10
  • 1055

swift IOS 视图控制器 UIButton UILabel 控件使用

一.创建Swift 项目,第一章说过。不在赘述 二。创建一个
  • zhang_biao_1991
  • zhang_biao_1991
  • 2014年06月12日 04:52
  • 8642

IOS基础控件 UISwitch swift3.1

// //  ViewController.swift //  uiSwitch // //  Created by hong wang on 2017/6/2. //  Copyright...
  • appiox8
  • appiox8
  • 2017年06月03日 01:50
  • 216

Swift实现的常用iOS UI控件

  • 2015年12月18日 09:51
  • 268KB
  • 下载

swift 快速奔跑的兔几 本节的内容是:集合视图

集合视图是一种用于显示对象集合的工具。iOS和OS X上面都有集合视图,但是iOS上的实现要更好一些。下面就要说一说iOS下的UICollectionView。 利用UICollectionView...
  • u014328357
  • u014328357
  • 2015年11月25日 20:28
  • 334

swift3.0多列表格 行和列可以滚动的集合视图

项目地址:https://github.com/xjh19920000/CollectionTableView
  • qq_27717857
  • qq_27717857
  • 2017年04月13日 21:00
  • 400

iOS中 Swift初级入门学习(一)

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。...
  • qq_31810357
  • qq_31810357
  • 2015年11月25日 08:32
  • 1583

iOS开发----Swift基础控件

使用x
  • Dev_Ho
  • Dev_Ho
  • 2014年10月24日 14:57
  • 5944

swift中表视图的创建

// // ViewController.swift // myview // // Created by 黄权浩 on 14-12-27. // Copyright (c) 2014年 黄权...
  • quanhaoH
  • quanhaoH
  • 2014年12月27日 15:07
  • 819

ios_swift开发资源整理

iOS Swift开发资源整理 文档管理者:PMST 当前版本:V1.1.0 最后更新日期:2015.06.28(ps:这兴起事情有点多更新有点少) 注:[New]表示更新内容,...
  • colouful987
  • colouful987
  • 2015年05月28日 16:35
  • 15403
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发中的视图和各种基础控件----Swift
举报原因:
原因补充:

(最多只允许输入30个字)