【问题标题】:swift: How do I change the background color, when it is already a color to start with?swift:当它已经是一种颜色时,如何更改背景颜色?
【发布时间】:2016-03-26 16:31:04
【问题描述】:

我正在尝试在按下按钮时更改视图(游戏)的背景颜色。使用这个: self.view.backgroundColor = UIColor.redColor() 但是只有在运行前将 backgroundColor 设置为默认颜色时才有效(背景变为红色)。当我尝试将 backgroundColor 设置为红色时 backgroundColor 已经是黄色(或在 Xcode 中预先设置的任何其他颜色,不是以编程方式),它不起作用。背景保持黄色。

import Foundation
import UIKit
import iAd
class gamePlay: UIViewController, ADBannerViewDelegate {


    @IBAction func b4(sender: AnyObject) {

        self.view.backgroundColor = UIColor.redColor()
        print("background is red")
    }


    @IBOutlet var adBanner2: ADBannerView!

    var flag = String()

    override func viewDidLoad() {
        if flag == "hard"{

            print("hard mode")
        }

        else if flag == "normal"{

            print("normal mode")

        }

        adBanner2.hidden = true
        adBanner2.delegate = self
        self.canDisplayBannerAds = true
    }

    func bannerViewWillLoadAd(banner: ADBannerView!) {

    }

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    NSLog("error 2")
    }

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
        return true
    }

    func bannerViewDidLoadAd(banner: ADBannerView!) {
        adBanner2.hidden = false
    }



}

【问题讨论】:

  • 所以您是说当您以编程方式设置背景颜色更改时有效,但当您在 ​​Xcode 中进行设置时无效?
  • 代码中的视图是什么?你是指 self.view 还是 view 一个 uiview 的 iboutlet ?
  • 根据这个问题当前的配置和呈现方式,我的回答是“不,不是真的”,正如 T 先生所说的那样。由此,您能否详细说明并更新原始问题?包括“初始配置”的粗体部分(包括故事板或程序化和完整详细信息)“目标操作”(位置、时间、启动操作、响应)、“当前操作”(您如何实施目标操作)、“观察到的响应” '。这样做可以让我们尽快解决问题:)
  • 感谢您告诉我,现在已编辑。 :)

标签: ios swift2 xcode7 background-color


【解决方案1】:

您确定在 Xcode 界面构建器中将正确的视图设置为黄色吗?我不知道您的视图层次结构如何,但请尝试以下操作:

@IBAction func b4(sender: AnyObject) {
    print("background was \(self.view.backgroundColor)")
    self.view.backgroundColor = UIColor.redColor()
    print("background is now \(self.view.backgroundColor)")
}

它应该先打印黄色,然后再打印红色。如果它没有首先显示黄色,那么您在界面构建器中将错误的视图设置为黄色(可能完全覆盖您的整个背景视图或类似视图,因此您看不到背景视图的颜色)。

【讨论】:

    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 2022-11-02
    • 2021-07-20
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多