91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確的使用Swift中的UIButton

發布時間:2020-11-05 17:43:34 來源:億速云 閱讀:409 作者:Leah 欄目:開發技術

如何正確的使用Swift中的UIButton?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一.UIButton基本操作

1.創建按鈕

let btn: UIButton = UIButton()//沒有樣式
let btns:UIButton =UIButton(type: UIButtonType)//有樣式
let button = UIButton(frame:CGRect(x:10, y:150, width:100, height:30))//簡化創建方式

UIButtonType有以下類型

public enum UIButtonType : Int {
 case custom // no button type
 @available(iOS 7.0, *)
 case system // standard system button
 case detailDisclosure
 case infoLight
 case infoDark
 case contactAdd
 public static var roundedRect: UIButtonType { get } // Deprecated, use UIButtonTypeSystem instead
}
//使用
let btn: UIButton = UIButton(type: .Custom)

UIButton狀態類型

/**
Normal (默認狀態)
Highlighted (高亮狀態)點擊按鈕不放
Disabled (使能狀態)就是是否可用狀態-->禁用的狀態才會顯現
Selected (選中狀態)通過selected屬性設置
*/

2、UIButton設置字內容和顏色

//顯示文字
button1.setTitle("普通狀態", for: .normal)
button1.setTitle("高粱狀態", for: .highlighted)
button1.setTitle("禁用狀態", for: .disabled)
//顯示文字顏色
button1.setTitleColor(UIColor.red, for: .normal)
button1.setTitleColor(UIColor.blue, for: .highlighted)
button1.setTitleColor(UIColor.cyan, for: .selected)
button1.setTitleColor(UIColor.cyan, for: .disabled)
//陰影文字顏色設置
button1.setTitleShadowColor(UIColor.cyan, for: .normal)
button1.setTitleShadowColor(UIColor.green, for: .highlighted)
button1.setTitleShadowColor(UIColor.brown, for: .disabled)
button1.setTitleShadowColor(UIColor.darkGray, for: .selected)

3.UIButton設置背景顏色和背景圖片

//背景顏色
button2.backgroundColor = UIColor.orange
//背景圖片 
button4.setBackgroundImage(UIImage(named:"XXX"), for: .normal)

4.UIButton設置字體大小

button.titleLabel?.font = UIFont.systemFont(ofSize: 12)

5.禁用UIButton

button.isEnabled = false
button.isEnabled = true

6.設置圓角

button.layer.cornerRadius = 5
button.layer.masksToBounds = true

7.設置邊框寬度/顏色

button.layer.borderWidth = 2
button.layer.borderColor = UIColor.red.cgColor

8.設置背景圖片為圓角

buttonImage.setImage(UIImage(named:"1") , forState: UIControlState.Normal)
//設置背景圖片為圓角
buttonImage.imageView?.layer.cornerRadius = 50

默認情況下按鈕會被渲染成單一顏色;系統藍
button.setImage(UIImage(named:"icon1"),forState:.Normal) //設置圖標
button.adjustsImageWhenHighlighted=false //使觸摸模式下按鈕也不會變暗(半透明)
button.adjustsImageWhenDisabled=false //使禁用模式下按鈕也不會變暗(半透明)

也可以設置成保留圖標原來的顏色
let iconImage = UIImage(named:"icon2")?.withRenderingMode(.alwaysOriginal)
button.setImage(iconImage, for:.normal) //設置圖標
button.adjustsImageWhenHighlighted = false //使觸摸模式下按鈕也不會變暗(半透明)
button.adjustsImageWhenDisabled = false //使禁用模式下按鈕也不會變暗(半透明)

9.UIButton上圖片和文字調整

UIButton上添加圖片和文字,有時需要我們調整方向為逆時針方向,上、左、下、右依次去設置的

btn.imageEdgeInsets =UIEdgeInsetsMake(top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat)

btn.titleEdgeInsets =UIEdgeInsetsMake(top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat)

實例如下:

//創建一個圖片一個文字的按鈕 
let btn2: UIButton = UIButton(type: .Custom) 
btn2.frame = CGRectMake(50, 100, 120, 35) 
btn2.setImage(UIImage(named: "1"), forState: .Normal) 
btn2.backgroundColor = UIColor.blackColor() 
btn2.titleLabel?.font = UIFont.systemFontOfSize(20) 
btn2.imageView?.contentMode = UIViewContentMode.ScaleAspectFit 
btn2.setTitle("圖片按鈕", forState: .Normal) 
//偏移量,分別為上下左右 
btn2.imageEdgeInsets = UIEdgeInsetsMake(0, -50, 0, 0) 
btn2.titleEdgeInsets = UIEdgeInsetsMake(0, -80, 0, 5) 
btn2.setTitleColor(UIColor.whiteColor(), forState: .Normal) 
btn2.adjustsImageWhenHighlighted = false 
self.view.addSubview(btn2) 

10.添加按鈕的點擊事件

按鈕的觸摸時間有以下類型

touchDown:單點觸摸按下事件,點觸屏幕
touchDownRepeat:多點觸摸按下事件,點觸計數大于1,按下第2、3或第4根手指的時候
touchDragInside:觸摸在控件內拖動時
touchDragOutside:觸摸在控件外拖動時
touchDragEnter:觸摸從控件之外拖動到內部時
touchDragExit:觸摸從控件內部拖動到外部時
touchUpInside:在控件之內觸摸并抬起事件
touchUpOutside:在控件之外觸摸抬起事件
touchCancel:觸摸取消事件,即一次觸摸因為放上太多手指而被取消,或者電話打斷

button1.addTarget(self,action:#selector(methodName), for: .touchUpInside)
button1.addTarget(self, action:#selector(someMethod(button:)), for:.touchUpInside)
//上
 func methodName() {
  print("tapped")
 }

//下
 func someMethod(button:UIButton) {
  print("你是誰啊,其實就是一個按鈕")
 }

二.自定義操作

1.UIButton的圖片文字布局

創建一個按鈕且其同時擁有文字和圖片屬性,會按照系統的默認樣式(左圖片,右文字)顯示。但是有的時候,我們會遇到其他的設計需求,比如:左文字有圖片、上文字下圖片、上圖片下文字等。這個時候就需要我們自定義按鈕的顯示樣式來滿足復雜多變的設計需求了。 我自定義了一個按鈕的extension來滿足以上的功能,代碼如下:

import Foundation
import UIKit

enum ButtonLayout {
 case leftImage
 case rightImage
 case topImage
 case bottomImage
}

extension UIButton {
 
 func setLayoutType(type: ButtonLayout){
  let image: UIImage? = self.imageView?.image
  switch type {
  case .leftImage:
   print("系統默認的方式")
  case .rightImage:
   self.imageEdgeInsets = UIEdgeInsets(top:0, left: (self.titleLabel?.frame.size.width)!, bottom: 0, right:-(self.titleLabel?.frame.size.width)!)
   self.titleEdgeInsets = UIEdgeInsets(top: 0, left: -(image?.size.width)!, bottom: 0, right: (image?.size.width)!)
  case .topImage:
   self.imageEdgeInsets = UIEdgeInsets(top:-(self.titleLabel?.frame.size.height)!, left: 0, bottom: 0, right:-((self.titleLabel?.frame.size.width)!))
   //圖片距離右邊框距離減少圖片的寬度,距離上m邊距的距離減少文字的高度
   self.titleEdgeInsets = UIEdgeInsets(top: ((image?.size.height)!), left: -((image?.size.width)!), bottom: 0, right:0)
  //文字距離上邊框的距離增加imageView的高度,距離左邊框減少imageView的寬度,距離下邊框和右邊框距離不變
  default:
   self.imageEdgeInsets = UIEdgeInsets(top: (self.titleLabel?.frame.size.height)!, left:0, bottom: 0, right:-((self.titleLabel?.frame.size.width)!))
   //圖片距離上邊距增加文字的高度 距離右邊距減少文字的寬度
   self.titleEdgeInsets = UIEdgeInsets(top: -(image?.size.height)!, left: -(image?.size.width)!, bottom: 0, right: 0)
  }
 }
}

看完上述內容,你們掌握如何正確的使用Swift中的UIButton的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

綦江县| 庆城县| 青铜峡市| 治多县| 四平市| 博兴县| 图木舒克市| 抚顺县| 蓬溪县| 大余县| 郸城县| 台州市| 军事| 丹凤县| 资中县| 荣成市| 麻栗坡县| 盐城市| 大同市| 诏安县| 合山市| 松潘县| 武山县| 江孜县| 岳阳市| 南江县| 酉阳| 台安县| 太仆寺旗| 化德县| 虎林市| 宁化县| 东港市| 独山县| 景德镇市| 平原县| 常熟市| 泽州县| 于田县| 宣城市| 乌审旗|