前提・実現したいこと
swift言語でiOSアプリを実装しています。
UITabBarコントロールにてタブ選択によって表示内容を変更させるページを作成しているのですが、
初期表示時にどれもタブが選択されていない状態になってしまいます。
固定でいいので一番左のタブを選択している状態で表示させる方法をご教示いただけますと幸いです。
恐れ入りますが、お力を貸してください。
該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController, UITabBarDelegate { 4 5 var iWidthScreen:CGFloat = 0.0 6 var iHeightScreen:CGFloat = 0.0 7 8 var scrollView = UIScrollView() 9 var myScrollView:MyScrollView! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 iWidthScreen = self.view.frame.size.width 15 iHeightScreen = self.view.frame.size.height 16 17 let nav = UINavigationBar() 18 nav.frame = CGRect(x: 0, y: 45, width: self.view.frame.width, height: 50) 19 nav.barTintColor = UIColor.black 20 nav.titleTextAttributes = [ 21 .foregroundColor: UIColor.green 22 ] 23 let navItem:UINavigationItem = UINavigationItem(title: "タイトル") 24 nav.pushItem(navItem, animated: true) 25 self.view.addSubview(nav) 26 27 // タブ用スクロールバー 28 scrollView = UIScrollView() 29 scrollView.frame = CGRect(x: 0, y: 100, width: iWidthScreen, height: 30) 30 scrollView.contentSize = CGSize(width: 500, height: 30) 31 32 myTabBar = MyTabBar() 33 myTabBar.frame = CGRect(x: 0, y: 0, width: iWidthScreen, height: 30) 34 myTabBar.barTintColor = UIColor.black 35 myTabBar.unselectedItemTintColor = UIColor.white 36 myTabBar.tintColor = CustomClass.CustomUIColor().basicGreen() 37 38 self.createData() 39 UITabBarItem.appearance().setTitleTextAttributes([.font : UIFont.systemFont(ofSize: 16)], for: .normal) 40 UITabBarItem.appearance().setTitleTextAttributes([.font : UIFont.boldSystemFont(ofSize: 18)], for: .selected) 41 } 42 43 private func createData() { 44 // APIより情報を取得し格納 ※略 45 self.aData = data 46 47 self.setBuildingInfo(0) 48 self.myTabBar.items = self.arrTabItems 49 self.myTabBar.delegate = self 50 self.scrollView.addSubview(self.myTabBar) 51 self.view.addSubview(self.scrollView) 52 } 53 } 54 55 // タブタップ時イベント 56 func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 57 58 let tabData = self.aData[item.tag] 59 60 let vc = UIViewController() 61 vc.view.backgroundColor = UIColor.black 62 63 self.myScrollView = MyScrollView() 64 self.myScrollView.backgroundColor = UIColor.black 65 self.myScrollView.frame = CGRect(x: 0, y: 135, width: self.iWidthScreen, height: self.iHeightScreen * 0.8) 66 self.myScrollView.contentSize = CGSize(width: self.iWidthScreen, height: 750) 67 self.myScrollView.isUserInteractionEnabled = true 68 69 for j in 0..<tabData.count { 70 let data = tabData[j] as! Dictionary<String, AnyObject> 71 72 let iWidthVScreen:CGFloat = vw.frame.size.width 73 let iHeightVScreen:CGFloat = vw.frame.size.height 74 75 let lblTime = UILabel() 76 lblTime.frame = CGRect(x: iWidthVScreen * 0.6, y: iHeightVScreen * 0.55, width: 50, height: 15) 77 lblTime.text = data["sTime"] 78 lblTime.textColor = UIColor.white 79 lblTime.font = UIFont.systemFont(ofSize: 14) 80 vw.addSubview(lblTime) 81 } 82 self.view.addSubview(self.myScrollView) 83 } 84}
import UIKit class MyTabBar: UITabBar { override func sizeThatFits(_ size: CGSize) -> CGSize { var size = super.sizeThatFits(size) size.height = 30 return size } }
補足情報(FW/ツールのバージョンなど)
MacOS High Sierra
Xcode 10.1
Swift 3.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/08 06:50