0
如何將此功能調整爲儘可能精簡? if和else塊之間的唯一區別是UiImageView的高度 - 如果爲true,高度爲300,否則爲150.我似乎無法找出在沒有冗餘代碼的情況下重構此函數的最佳方法(如例如)或者一個非常長的函數,看起來很簡單似乎太長了。如何使用if/else函數提供UIImageView屬性?
我離開了粗略的例子,目的明確。
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
banner(profileHasCustomBanner: false)
}
// banner
func banner(profileHasCustomBanner: Bool) {
if profileHasCustomBanner == true {
let bannerImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 300))
bannerImageView.image = #imageLiteral(resourceName: "the-banner")
view.contentMode = .scaleAspectFit
view.addSubview(bannerImageView)
} else {
let bannerImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 150))
bannerImageView.image = #imageLiteral(resourceName: "the-banner")
view.contentMode = .scaleAspectFit
view.addSubview(bannerImageView)
}
}
}
@maddy什麼對象是view.contentMode歸因於?當我把它寫成self.view.contentMode時,它會編譯,但不會與任何其他對象一起編譯,那麼這裏的自我究竟是什麼? –
'view'和'self.view'指的是同樣的東西 - 當前視圖控制器的視圖。 – rmaddy
但在視圖控制器中可以有很多視圖。如果我在這個橫幅的下面創建另一個橫幅,並且我希望它的contentMode是.scaleAspectFill,那麼這個特定的視圖是如何引用的? –