自定义 XIB 视图触摸 UINavigationController

Posted

技术标签:

【中文标题】自定义 XIB 视图触摸 UINavigationController【英文标题】:Custom XIB View touching UINavigationController 【发布时间】:2017-10-30 12:59:21 【问题描述】:

我有一个自定义视图:

它被放置在一个视图控制器中,该控制器嵌入在 UINavigationControllerUITabViewController 中。

我的自定义视图正在触及我的UINavigationControllerUITabViewController。但我想在顶部和底部之间留出一些空间。 (蓝色添加到集合视图的显示区域)

我已经移动并移除了约束。确保他们在安全区域。

我已经调整了edgesForExtendedLayout

这是我的代码:

photosOverview = [[PhotosOverview alloc] initWithFrame:self.view.frame];
[photosOverview.btnAddPhotos addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
self.edgesForExtendedLayout = UIRectEdgeNone;
[self.view addSubview:photosOverview];

如何调整我的自定义视图,使其容器视图的顶部和底部之间有空间?

【问题讨论】:

向安全区域添加垂直约束以留出边距。 【参考方案1】:

最简单的方法是,将一个视图添加到您的照片视图控制器中,并从各个方面获得所需的边距(约束)。

然后,将此新视图的框架设置到您的 photoOverview,并将 photoOverview 添加到该新视图。

检查下面的更新代码,其中 newView 是添加到照片控制器的视图。

photosOverview = [[PhotosOverview alloc] initWithFrame:self.newView.frame];
[photosOverview.btnAddPhotos addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
self.edgesForExtendedLayout = UIRectEdgeNone;
[self.newView addSubview:photosOverview];

【讨论】:

以上是关于自定义 XIB 视图触摸 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章

我的自定义 UIView 没有收到触摸

如何将按钮添加到 UINavigation 项?

从 UIView 加载 UINavigation 控制器

在 UINavigationbar 的标题视图中添加自定义 UIView

如何防止在 UINavigationbar 上同时触摸按钮的双重动作?

显示来自 Xib 的自定义视图