Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone UINavigationController:仅对部分视图设置动画_Iphone_Uinavigationcontroller - Fatal编程技术网

iPhone UINavigationController:仅对部分视图设置动画

iPhone UINavigationController:仅对部分视图设置动画,iphone,uinavigationcontroller,Iphone,Uinavigationcontroller,我有一个UINavigationController,它包含(从上到下)一个UINavigationBar、一个UIImageView和一个UITableView。我将在堆栈中推送的每个视图都在同一位置包含相同的UIImageView(这是一个徽标) 我希望徽标保持在UINavigationBar的正下方,在我按下/弹出视图时没有动画。 可能吗 谢谢我认为实现这一点的唯一方法是将徽标图像视图直接添加到应用程序代理的主窗口中。将其放置在导航栏正下方。然后,您必须将视图控制器视图的背景色设置为清除,

我有一个UINavigationController,它包含(从上到下)一个UINavigationBar、一个UIImageView和一个UITableView。我将在堆栈中推送的每个视图都在同一位置包含相同的UIImageView(这是一个徽标)

我希望徽标保持在UINavigationBar的正下方,在我按下/弹出视图时没有动画。 可能吗


谢谢

我认为实现这一点的唯一方法是将徽标图像视图直接添加到应用程序代理的主窗口中。将其放置在导航栏正下方。然后,您必须将视图控制器视图的背景色设置为清除,并确保
不透明
属性设置为
。调整视图大小并设置自动调整大小遮罩,使其定位到屏幕底部(或选项卡栏或底部工具栏的顶部)

基本上,您需要设置视图控制器的视图,使视图顶部的一部分完全透明。如果是这种情况,则直接添加到主窗口的徽标图像视图将始终可见。当使用导航控制器在视图控制器之间按下或弹出时,只需确保每个视图控制器的视图在徽标图像视图显示的右上角同样设置为透明即可。即使导航控制器为过渡设置动画,视图顶部的透明度也应仅显示正在设置动画的视图的不透明部分,以及导航栏及其子视图

希望这是有道理的


更新:根据Noah Witherspoon的评论,更好的方法可能只是将图像徽标视图添加为导航控制器视图的子视图。您仍然需要调整视图控制器视图的大小,以便它们的内容不会被徽标图像视图遮挡,但这种方法总体上要干净得多。

徽标是单独的图像吗?或者它是更大图像的一部分?徽标是一个单独的图像。它位于UINavigationBar和UITableView之间。我只想设置TableView的动画。有什么想法吗?我想我和你有同样的问题,你能不能快速添加一个屏幕截图,这样我就能更好地理解你的意思,然后我就可以提供帮助了。我不会使用可能重复的方法。使视图控制器透明将为其整个视图带来显著的额外合成成本——更好的方法是将徽标视图添加到导航控制器视图顶部的窗口中。这样,只有图像视图覆盖的区域才需要混合。啊,是的,你说得对。如果出于任何原因,只是为了更恰当地管理徽标图像视图,这将是一种更好的方法。事实上,我完全相信,我建议的方法不会导致任何可观的性能成本,尽管额外的合成成本。