2012-06-01 9 views
0

Я хочу, чтобы контроллер взгляда находился в стеке навигации, но я не хочу, чтобы его вид первоначально отображался - другими словами, я хочу, чтобы вид, который был виден, когда контроллер представления нажат, чтобы все еще быть видимым.Как добавить прозрачный вид?

Я попытался установить значение альфа-значения представления контроллера вида 0.0, которое, как я думал, сделает его прозрачным. Но вместо этого происходит то, что когда я нажимаю контроллер представления в стеке, экран белый. Если я установил альфа-версию в 1.0, то представление диспетчера представлений будет выглядеть так, как ожидалось.

Почему это белый и непрозрачный?

+0

Что вы пытаетесь достичь? Это кажется глупым из вашего объяснения. – Christian

+0

может занять скриншот перед тем, как вы нажмете новый вид, а затем воспользуйтесь скриншотом в качестве фонового изображения нового вида .... для скриншота: http: //stackoverflow.com/questions/10140907/take-a-screenshot-using -код –

+0

Кристиан. Существует анимация, которая имеет место до появления представления в нажатом vc. Если я выполняю push после анимации, есть небольшая, но заметная задержка, так как vc/view загружает и рисует. Таким образом, сначала нажимая его, но скрывая/прозрачно, у него есть время для загрузки во время анимации (анимация - это представление, которое помещается на передний план в качестве подвид окна). Когда анимация заканчивается, подвид окна, в котором произошла анимация, удаляется одновременно с тем, что прозрачный вид становится непрозрачным. – Gruntcakes

ответ

1

вам придется добавить вид на viewcontrollers вручную Не толкающий его Например сделайте следующее

YourViewController *vc = [[YourViewController alloc] init]; 
[self.view addSubview:vc.view]; 

vc.view.alpha = 0.0; 

//Animate Here 

vc.view.alpha = 1.0; 
//Commit Animate Here 

Пожалуйста, не то, что вам придется сделать некоторые дополнительные коды для осуществления высвобождения ОГО , так как теперь вы сохранили vc.view, вы не сможете быстро освободить vc,

Другое решение вместо реализации второго представления, поскольку viewcontoller реализует его как uiview, а класс xib будет рассматриваться, а не uiviewcontroller

+0

Контроллер представления добавляет слой, который не уверен, как вы можете сделать его прозрачным, я попытался сделать то же самое, что вы пробовали, но я никогда не преуспевал, поэтому я всегда придерживаюсь решения выше –

+0

Поскольку CALayer можно манипулировать вместо UIView, должно быть возможно сделать его прозрачным, если можно предположить. Вы не нашли никаких свойств или методов, чтобы сделать его прозрачным или скрытым? – Gruntcakes

+0

Я вижу несколько сообщений о разрезании «выреза» в CALayer, возможно, я мог бы поэкспериментировать с этим. – Gruntcakes

0

Возможно, убедитесь, что для свойства opaque установлено значение NO?

Или, возможно, представление, которое вы нажимаете, было построено в построителе интерфейса, и у вас есть фоновый цвет белого цвета с другим видом, который вы положили поверх него, и вы только изменили непрозрачность подвью?

+0

Спасибо за предложение, но не имеет значения. – Gruntcakes

+0

Я не использую IB для просмотра/vc. В своем представленииDidAppear для backgroundColor устанавливается clearColor. В vc есть только один вид (который является UIWebView). – Gruntcakes

Смежные вопросы