直播系統原始碼,按鈕圖片和文字位置的各種設定
直播系統原始碼,按鈕圖片和文字位置的各種設定實現的相關程式碼
1.在UIButton的擴充套件中新增方法
/* 列舉 設定 圖片的位置 */ enum ButtonImagePosition : Int { case imageTop = 0 case imageLeft case imageBottom case imageRight } extension UIButton { /** type :image 的位置 Space :圖片文字之間的間距 */ func setImagePosition(type:ButtonImagePosition,Space space:CGFloat) { let imageWith :CGFloat = (imageView?.frame.size.width)!; let imageHeight :CGFloat = (imageView?.frame.size.height)!; var labelWidth :CGFloat = 0.0; var labelHeight :CGFloat = 0.0; labelWidth = CGFloat(titleLabel!.intrinsicContentSize.width); labelHeight = CGFloat(titleLabel!.intrinsicContentSize.height); var imageEdgeInsets :UIEdgeInsets = UIEdgeInsets(); var labelEdgeInsets :UIEdgeInsets = UIEdgeInsets(); switch type { case .imageTop: imageEdgeInsets = UIEdgeInsets.init(top: -labelHeight - space/2.0, left: 0, bottom: 0, right: -labelWidth) labelEdgeInsets = UIEdgeInsets.init(top:0, left: -imageWith, bottom: -imageHeight-space/2.0, right: 0) break; case .imageLeft: imageEdgeInsets = UIEdgeInsets.init(top:0, left:-space/2.0, bottom: 0, right:space/2.0) labelEdgeInsets = UIEdgeInsets.init(top:0, left:space/2.0, bottom: 0, right: -space/2.0) break; case .imageBottom: imageEdgeInsets = UIEdgeInsets.init(top:0, left:0, bottom: -labelHeight-space/2.0, right: -labelWidth) labelEdgeInsets = UIEdgeInsets.init(top:-imageHeight-space/2.0, left:-imageWith, bottom: 0, right: 0) break; case .imageRight: imageEdgeInsets = UIEdgeInsets.init(top:0, left:labelWidth+space/2.0, bottom: 0, right: -labelWidth-space/2.0) labelEdgeInsets = UIEdgeInsets.init(top:0, left:-imageWith-space/2.0, bottom: 0, right:imageWith+space/2.0) break; } self.titleEdgeInsets = labelEdgeInsets self.imageEdgeInsets = imageEdgeInsets } }
2.使用
lazy var btn1:UIButton = { let btn = UIButton.init(frame: CGRect.init(x: 50, y: 100, width: 120, height: 40)) btn.backgroundColor = .gray btn.setImage(UIImage.init(named: "test"), for: .normal) btn.setTitle("測試標題", for: .normal) btn.setImagePosition(type: .imageLeft, Space: 5) return btn }() lazy var btn2:UIButton = { let btn = UIButton.init(frame: CGRect.init(x: 50, y: 160, width: 120, height: 40)) btn.backgroundColor = .gray btn.setImage(UIImage.init(named: "test"), for: .normal) btn.setTitle("測試標題", for: .normal) btn.setImagePosition(type: .imageRight, Space: 5) return btn }() lazy var btn3:UIButton = { let btn = UIButton.init(frame: CGRect.init(x: 50, y:220, width: 120, height: 80)) btn.backgroundColor = .gray btn.setImage(UIImage.init(named: "test"), for: .normal) btn.setTitle("測試標題", for: .normal) btn.setImagePosition(type: .imageTop, Space: 10) return btn }() lazy var btn4:UIButton = { let btn = UIButton.init(frame: CGRect.init(x: 50, y: 320, width: 120, height: 80)) btn.backgroundColor = .gray btn.setImage(UIImage.init(named: "test"), for: .normal) btn.setTitle("測試標題", for: .normal) btn.setImagePosition(type: .imageBottom, Space: 10) return btn }() //執行出來的效果就是上面的截圖 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. view.addSubview(btn1) view.addSubview(btn2) view.addSubview(btn3) view.addSubview(btn4) }
但是,你會發現有兩個警告’titleEdgeInsets’ will be deprecated in iOS 15.0 ‘imageEdgeInsets’ will be deprecated in iOS 15.0,這是蘋果公司在iOS15之後對UIButton做了改動,主要是解決這個圖片位置的調整的問題,開啟api你會發現這個 UIButtonConfiguration
3.附上 UIButtonConfiguration 使用方法
if #available(iOS 15.0, *) { var conf1 = UIButton.Configuration.plain() conf1.title = "分享" conf1.baseForegroundColor = .black conf1.image = UIImage(named: "jk_anniu_shuju_fenxiang_f") conf1.imagePlacement = .leading conf1.imagePadding = 10 let bt1 = UIButton.init(configuration: conf1, primaryAction: nil) var conf2 = UIButton.Configuration.bordered() conf2.title = "分享" conf2.baseForegroundColor = .orange conf2.image = UIImage(named: "jk_anniu_shuju_fenxiang_f") conf2.imagePlacement = .trailing conf2.imagePadding = 40 let bt2 = UIButton.init(configuration: conf2, primaryAction: nil) var conf3 = UIButton.Configuration.borderedTinted() conf3.title = "分享" conf3.baseForegroundColor = .red conf3.image = UIImage(named: "jk_anniu_shuju_fenxiang_f") conf3.imagePlacement = .top conf3.imagePadding = 10 let bt3 = UIButton.init(configuration: conf3, primaryAction: nil) var conf4 = UIButton.Configuration.gray() conf4.title = "分享" conf4.baseForegroundColor = .brown conf4.image = UIImage(named: "jk_anniu_shuju_fenxiang_f") conf4.imagePlacement = .bottom conf4.imagePadding = 10 let bt4 = UIButton.init(configuration: conf4, primaryAction: nil) bt1.frame = CGRect(x: 220, y: 100, width: 100, height: 80) bt2.frame = CGRect(x: 220, y: 200, width: 150, height: 80) bt3.frame = CGRect(x: 220, y: 300, width: 100, height: 80) bt4.frame = CGRect(x: 220, y: 400, width: 100, height: 80) view.addSubview(bt1) view.addSubview(bt2) view.addSubview(bt3) view.addSubview(bt4) }
以上就是直播系統原始碼,按鈕圖片和文字位置的各種設定實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2847689/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- app直播原始碼,為文字/圖片新增按壓效果APP原始碼
- 直播商城系統原始碼,點選按鈕 儲存頁面為圖片到本地原始碼
- 直播系統原始碼,單選按鈕和核取方塊原始碼
- 設定按鈕的徽章文字
- Qt中按鈕背景圖片的切換設定QT
- 直播系統搭建,插入圖片、刪除圖片、設定圖片大小
- iOS_按鈕文字圖片任意佈局,隨意定製iOS
- 各種語言按鈕事件特徵碼事件特徵
- 聊天平臺原始碼,解決設定導航欄按鈕圖片變色問題原始碼
- 自定義按鈕 圖片標題位置隨意放置
- 直播網站程式原始碼,給元件按鈕、文字編輯框等設定圓形邊框、顏色網站原始碼元件
- 直播帶貨原始碼,圖片左上角或右上角點選返回按鈕原始碼
- app直播原始碼,uniapp點選按鈕 儲存頁面為圖片到本地APP原始碼
- 直播app系統原始碼,Flutter MaterialButton 實現圓角邊框按鈕APP原始碼Flutter
- 直播系統app原始碼,漸變色按鈕帶陰影樣式APP原始碼
- 直播軟體原始碼,好看的點贊按鈕原始碼
- 直播系統開發,Flutter建立圓圈圖示按鈕Flutter
- 影片直播系統原始碼,例項原始碼系列-設定系統時間原始碼
- 直播平臺原始碼,qt繪畫事件-設定背景圖片原始碼QT事件
- JavaScript設定背景圖片位置JavaScript
- 直播app系統原始碼,python pdf轉為圖片APP原始碼Python
- 直播系統原始碼,快速實現改變圖片尺寸原始碼
- app直播原始碼,Android 設定系統亮度APP原始碼Android
- 直播原始碼網站,點選分享按鈕,分享到各個渠道功能的實現原始碼網站
- UIButton(用按鈕中的文字大小來動態設定按鈕的尺寸)UI
- WPF 按鈕背景圖片
- 各種作業系統中密碼檔案的位置作業系統密碼
- 線上直播系統原始碼,android 中一段文字設定不同顏色原始碼Android
- 手機直播原始碼,Flutter 中的彈簧按鈕效果原始碼Flutter
- css設定按鈕心跳收縮後,按鈕文字上下抖動,如何解決?CSS
- 小黑需知 各種系統中密碼檔案的位置(轉)密碼
- UIButton的圖片和文字位置UI
- 直播系統原始碼,使用者在點選圖片時,通過淡入淡出的方式放大圖片的兩種方法原始碼
- 直播app系統原始碼,圖片Loading旋轉動畫效果APP原始碼動畫
- 成品直播原始碼推薦,原生button按鈕css去掉預設樣式原始碼CSS
- 直播商城原始碼,實現商城客服聊天,傳送文字、圖片的功能原始碼
- 直播帶貨系統原始碼利用TextView設定部分字型的顏色和大小原始碼TextView
- RadioButton文字按鈕間距設定,按鈕在文字右端顯示,RadioButton 右端對齊