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是用来生成单行文本框的类,见过输入账号和密码那个吧。对,这里讲的就是那个鬼了。

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

今天就先到者了。

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




更新中。。。。。。。。

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

相关文章推荐

iOS开发之基础控件(Swift版)

iOS开发之基础控件的Swift版

UIKit框架-基础控件Swift版本: 2.UIButton方法/属性详解

UIButton方法\属性详解

iOS常用控件、图片尺寸大集合

元素控件 尺寸(pts) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44(横屏)    32(竖屏)   ...
  • kepoon
  • kepoon
  • 2014-09-30 10:57
  • 1675

Swift 常用控件的创建

import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super....

iOS开发之 滚动视图 + 页面控件(UIScrollView + UIPageControl)

效果图 : 1、UIScrollView :滚动视图     滚动视图 多个页面实现的原理 滚动视图位置不变 内容的位置发生改变     1⃣️分页查看图...

【iOS开发】---- 瀑布流视图控件"quilt"的用法

1000memories已经在MIT协议下开源了它的iOS瀑布流视图控件"quilt"。       瀑布流(quilt)-以不同的纵横比在多个列中显示图片和媒体,是1000memories网站、...

iOS开发实战:使用Swift语言自定义Pull To Refresh控件

全世界有非常多的应用程序。要开发出新的应用,并且能够吸引用户的注意力,使应用能够脱颖而出。毫无疑问,有人会说使简单应用出类拔萃的秘笈是开发小组(开发人员和设计人员)所使用的个性化技艺,用在大多数开发人...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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