2016-10-02 8 views
0

Я следовал учебному пособию о том, как создать приложение для iOS, когда изображение заголовка и фоновое изображение отображаются после нажатия кнопки (там отмечены как «скрытые» в инспектор атрибутов). Я использую Swift 3 и Xcode 8.Swift 3: Изображение не отображается, когда параметр isHidden = false

Вот что код выглядит следующим образом:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var background: UIImageView! 
    @IBOutlet weak var titleImage: UIImageView! 

    @IBOutlet weak var welcomeBtn: UIButton! 

    @IBAction func welcomePressed(_ sender: UIButton) { 
    background.isHidden = false 
    titleImage.isHidden = false 
    welcomeBtn.isHidden = true 
    } 

    //some more inherited functions.... 

Названное изображение отображается и кнопка радушны исчезает, как ожидается, но фон не отображается.

Если я сниму флажок «скрытый» в инспекторе атрибутов и сделаю «background.isHidden = true», все станет черным после нажатия кнопки.

Я действительно не понимаю этого поведения. Это ошибка или функция? Не следует ли показывать фоновое изображение, когда isHidden установлено на false? Не должно ли фоновое изображение исчезнуть, показывая все остальное, во втором сценарии?

В связи инспектор все кажется правильным, но я не понимаю, почему я не могу удалить соединение «вид - Фон»:

Outlets: фон - Фон, titleImage - Название изображения, вид - фон, welcomeBtn - Добро пожаловать Btn

Похожие действия: welcomePressed - Добро пожаловать Btn подправить внутри

когда я отобразите оба изображения в инспекторе атрибутов они будут правильно отображаться при запуске приложения.

+0

моя ошибка, я удалил ответ, не могли бы вы показать нам что-то еще, можете ли вы снова написать, что не так, и как оно выглядит с самого начала? isHidden = false означает, что что-то не скрыто, и оно появляется на экране –

+0

Как уже упоминалось, фоновое изображение не отображается, когда кнопка нажата, хотя isHidden установлена ​​в значение false. Все остальное работает: появляется изображение заголовка, кнопка исчезает. – Nina

+0

Я бы предложил использовать отладчик вида, чтобы убедиться, что 'frame' правильный и что перед ним ничего нет, блокируя его. Также убедитесь, что он имеет соответствующее значение 'alpha'. – Rob

ответ

0

Как предложил Роб, я попробовал отладчик вида и обнаружил, что фон UIImageView никогда не появляется.

Я не уверен, почему, но для фона UIImageView Я не мог видеть ссылку для ссылок в инспекторе соединений. Когда я щелкнул правой кнопкой мыши на слове «Background» в разделе «View Controller Scene» -> «View Controller» -> «View» открылось черное окно выхода и соединение было! Поэтому я удалил это соединение в этом черном окне и ViewController и перетащил другой IBOutlet из фона UIImageView в ViewController.

Теперь это работает! Фон UIImageView также появляется в отладчике вида.

Итак, исходный вопрос: как может соединение исчезнуть в инспекторе соединений, но все еще там, когда вы щелкаете правой кнопкой мыши по нему, и открывается черное окно выхода?

+0

Я задал новый вопрос по этой проблеме: http://stackoverflow.com/questions/39844581/xcode-how-can-an-iboutlet-connection-disappear-and-still-exist – Nina