swift基础篇:iOS控件大拌菜:UILable UIButton UITextView

override func viewDidLoad() {
        super.viewDidLoad()
        
        let label1 = UILabel(frame: CGRectMake(10, 50, 300, 400))
        label1.text = "swift"
        // 背景颜色,字体颜色,对齐方式
        label1.backgroundColor = UIColor.grayColor()
        label1.textColor = UIColor.yellowColor()
        label1.textAlignment = NSTextAlignment.Center
        // 文字大小自适应
        label1.adjustsFontSizeToFitWidth = true
        // 设置最小能接受的缩放比例
        label1.minimumScaleFactor = 0.8
        // 设置行数 0表示行数不限
        label1.numberOfLines = 0
        // 换行方式(按字母换行)
        label1.lineBreakMode = .ByCharWrapping
        // 字体设置:系统字体的30号 正常,粗体,斜体;个性化字体
        label1.font = UIFont.systemFontOfSize(30)
        label1.font = UIFont.boldSystemFontOfSize(30)
        label1.font = UIFont.italicSystemFontOfSize(30)
        label1.font = UIFont(name: "Zapfino", size: 20)
        // 通过如下方式可以获得系统支持的左右字体名称
        print(UIFont.familyNames())
        // 阴影设置
        label1.shadowColor = UIColor.lightGrayColor()
        label1.shadowOffset = CGSizeMake(3, 3)
        self.view.addSubview(label1)
    }

如上为UILabel的设置方式

下面来说一说UIButton

下面是一些基本的设置:

@IBOutlet weak var button: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        button.backgroundColor = UIColor.lightGrayColor()
        
        // 另一种按钮的创建方式
        let button1 = UIButton(type: UIButtonType.RoundedRect)
        button1.layer.cornerRadius = 5
        button1.frame = CGRectMake(10, 50, 300, 44)
        button1.backgroundColor = UIColor.lightGrayColor()
        button1.setTitle("bello hello", forState: UIControlState.Normal)
        self.view.addSubview(button1)
        
        // 设置按钮的文字和颜色 并且是在普通状态下的字
        button.setTitleColor(UIColor.greenColor(), forState: UIControlState.Normal)
        button.setTitle("bello hello", forState: UIControlState.Normal)
        button.layer.cornerRadius = 5

        
        // 设置按钮的字体和行数
        button.titleLabel?.font = UIFont(name: "Zapfino", size: 30)
        button.titleLabel?.numberOfLines = 0
    }

接下来是按钮的状态:

有的按钮在吃饭,有的按钮在睡觉。。。噗,开玩笑的:

state:

1、Normal:普通状态,此时木有与按钮进行任何交互

2、Highlighted:高亮状态,此时为按下按钮,但是木有离开按钮

3、Disabled:按钮不可用(大概是睡着了)

4、Selected:按钮选中时

栗子代码:

// 按钮状态
        button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        button.setTitleColor(UIColor.blueColor(), forState: UIControlState.Highlighted)
        
        button.setTitle("这时按钮无效", forState: UIControlState.Disabled)
        button.enabled = false</span>

按钮的类型:栗子:

// 按钮的类型
        let button2 = UIButton(type: UIButtonType.DetailDisclosure)
        button2.frame = CGRectMake(10, 100, 300, 44)
        button2.setTitle("bello hello", forState: UIControlState.Normal)
        self.view.addSubview(button2)
        
        
        let button3 = UIButton(type: UIButtonType.InfoDark)
        button3.frame = CGRectMake(10, 150, 300, 44)
        button3.setTitle("bello hello", forState: UIControlState.Normal)
        self.view.addSubview(button3)
        
        
        let button4 = UIButton(type: UIButtonType.ContactAdd)
        button4.frame = CGRectMake(10, 200, 300, 44)
        button4.setTitle("bello hello", forState: UIControlState.Normal)
        self.view.addSubview(button4)</span>

效果是酱紫的:


还可以用图片给按钮设置背景:

方法名:setBackgroundImage

这种方式下图片会被拉伸以适应按钮

********************************

方法名:backgroundColor

这种方式为图片的平铺

********************************

方法名:setImage

这种方式为图片的居中显示


在项目中使用图片,需要先将图片导入到工程中,然后在代码中加载图片,加载图片有两种方式:

1、UIImage(contentsOfFile:图片路径)

2、UIImage(named:"图片名称")

第一种方式加载的图片不会一直保留在程序运行的活跃内存中,多用来加载大图

第二种方式加载的图片会一直留在内存中,多用于加载常用的小图标


如果使用UIButton.System类型创建一个按钮,设置按钮图片时,图片会被纯色代替

     var img = UIImage(named: "1")
     img = img!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

以上是解决办法。


按钮事件类型:

常用的按钮能够响应的事件类型如下:

TouchDown:在按钮范围内按下

TouchDownRepeat:在按钮上连按两下

TouchDragInside:在按钮响应范围内滑动

TouchDragOutside:在按钮响应范围之外滑动(滑动的起点在按钮的外围内)

TouchDragEnter:从按钮的响应范围内滑出按钮,再次进入按钮的响应范围

TouchDragExit:从按钮的响应范围内滑出按钮

TouchUpInside:在按钮的响应范围内抬起手指

TouchUpOutside:在按钮的响应范围外抬起手指

如上所有的响应事件类型想要触发都有一个前提,那就是能够被响应,即手指对于按钮的起始作用点一定是要在按钮的响应范围内

呼呼,按钮的东西好多,毕竟是一个很重要的控件~

下面来说UITextView

单行文本框~

应用场景也很多,比如,登录注册的页面,输入用户名和密码的地方~就是它,是它是它就是它~

默认状态下,输入框的背景是透明的,而且木有边框,所以有时候我们看不到它~

说句题外话,包括做前端什么的时候,经常有那种,诶?代码明明有的啊,怎么木有 出现?调试一下就会发现,原来只是因为这家伙是透明的。。。所以,写代码的各位要细心~

言归正传了~

        let tf = UITextField(frame: CGRectMake(10, 50, 300, 44))
        // 边框,背景,字体颜色,字体,边框的设置
        tf.borderStyle = UITextBorderStyle.Bezel
        tf.backgroundColor = UIColor.lightGrayColor()
        tf.textColor = UIColor.blueColor()
        tf.font = UIFont(name: "Zapfino", size: 10)
        tf.borderStyle = UITextBorderStyle.RoundedRect
        // 提示字符
        tf.placeholder = "兔几喜欢fu萝卜"
        // 密码输入框,输入的密码会自动变成点点,不是坏掉了~
        tf.secureTextEntry = true
        // 对齐方式
        tf.contentVerticalAlignment = .Top
        tf.textAlignment = NSTextAlignment.Left
        // 成为第一响应者,这时候,界面一出现,光标就被定位在该输入框中
        tf.becomeFirstResponder()
        // 取消第一响应者
        tf.resignFirstResponder()
        // 可以使用如下方法使得一个视图内所有的输入框都失去第一响应者
        self.view.endEditing(true)
        // 文字的清除模式,在输入框输入的时候,右侧可以显示一个清除按钮
        tf.clearButtonMode = UITextFieldViewMode.WhileEditing//只有当输入框处于第一响应者时才显示
        tf.clearButtonMode = UITextFieldViewMode.UnlessEditing//只有当输入框处于第一响应者的时候隐藏
        self.view.addSubview(tf)

如上是UITextView的常用属性~

另外,在使用输入框的时候,需要对键盘进行个性化设置,可以设置成英文,或者数字模式等等,如下是键盘风格的定义代码:

public enum UIKeyboardType : Int {
    
    case Default // Default type for the current input method.
    case ASCIICapable // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
    case NumbersAndPunctuation // Numbers and assorted punctuation.
    case URL // A type optimized for URL entry (shows . / .com prominently).
    case NumberPad // A number pad (0-9). Suitable for PIN entry.
    case PhonePad // A phone pad (1-9, *, 0, #, with letters under the numbers).
    case NamePhonePad // A type optimized for entering a person's name or phone number.
    case EmailAddress // A type optimized for multiple email address entry (shows space @ . prominently).
    @available(iOS 4.1, *)
    case DecimalPad // A number pad with a decimal point.
    @available(iOS 5.0, *)
    case Twitter // A type optimized for twitter text entry (easy access to @ #)
    @available(iOS 7.0, *)
    case WebSearch // A default keyboard type with URL-oriented addition (shows space . prominently).
    
    public static var Alphabet: UIKeyboardType { get } // Deprecated
}
使用方式如下:

tf.keyboardType = UIKeyboardType.EmailAddress

另外,如果需要监控输入的内容,则需要使用UITextView的代理方法来实现(UITextFeildDelegate)

 tf.delegate = self

呼呼~这一篇差不多了,作为一只兔子要去蹦跶一会儿了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值