iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 6
0

選用MVC是因為之前OC有使用過
MVVM可以分散controller肥大問題
但我目前沒使用 待以後補上

Controller轉換Controller

OC

HomeViewController * _homeViewController = [[HomeViewController alloc] init];
[self presentViewController:_homeViewController animated:YES completion:NULL];

Swift

let vc = AddViewController() //change this to your class name
self.present(vc, animated: true, completion: nil)

present部分
Swift直接省略ViewController部分

MVC個人做法

之前前輩教導是先轉換controller
然後在controller裡面在addsubview
不知道對不對

controller

直接新增一個View

mainView = MainView.init(frame: CGRect.init(x: self.view.frame.origin.x, y: self.view.frame.origin.y, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height));
self.view.addSubview(mainView);       

View的Button action
也是要在controller作動喔
所以在controller宣告以下

mainView.addBtn.addTarget(self,
                         action: #selector(clickAddBtn),
                         for: .touchUpInside)

以及對應的func

@IBAction func clickAddBtn(_ sender: Any) {
    //code
}

UIView 與 Xib 連結

前面步驟
首先就新增一個UIView與Xib
然後在UIView裡面添加
以下程式
nibName: "ShipView"
要與Xib名稱一致
其餘照抄就可以了

    var contentView:UIView!
    override init(frame: CGRect) {
        super.init(frame: frame)
        setUp()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setUp()
    }
    func setUp() {
        let bundle = Bundle(for: type(of: self))
        let nib = UINib(nibName: "ShipView", bundle: bundle)
        contentView = (nib.instantiate(withOwner: self, options: nil)[0] as! UIView)
        contentView.frame = bounds
        addSubview(contentView)
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        
    }

新增成本UI部分

共用UI

拉了這些UI

中間黑色部分改用addsubview
因為會有 成本與收入 兩個
其中只有部分不同
想用BOOL做區別

成本UI

這裡比較不熟的事Scroll View
做一下紀錄
Scroll View與Self.View同寬
Scroll View中在加入View寬等於Self.View的兩倍
基本上就可以讓Scroll View左右滑動的感覺
全程使用xib就可以實現

進度

最新文章

金魚也學得會的「KD指標」! 什麼是KD黃金交叉、KD死亡交叉 - 2021年

RSI指標? 看我就好 新手好入門


上一篇
[Day 5] 重新規劃架構
下一篇
[Day 7] Swift 簡易計算機 (一)
系列文
iOS 從 Objective-c 進化為 Swift 的 30天之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言