我的问题:我有一个超级视图EditView,基本上占用整个应用程序框架,子视图MenuView只占用底部〜20%,然后MenuView包含它自己的子视图ButtonView,它实际上位于MenuView边界之外(类似这样:) ButtonView.frame.origin.y = -100.
(注意:EditView其他子视图不属于MenuView视图层次结构,但可能会影响答案.)
您可能已经知道了这个问题:何时ButtonView在MenuView(或者更具体地说,当我的触摸在MenuView范围内)时,ButtonView响应触摸事件.当我的触摸超出MenuView界限(但仍然在ButtonView界限内)时,不会收到任何触摸事件ButtonView.
例:
EditView所有观点的父母MenuViewEditView的子视图ButtonViewMenuView的子视图图:
+------------------------------+
|E                             |
|                              |
|                              |
|                              |
|                              |
|+-----+                       |
||B    |                       |
|+-----+                       |
|+----------------------------+|
||M                           ||
||                            ||
|+----------------------------+|
+------------------------------+
因为(B)在(M)的框架之外,(B)区域中的抽头将永远不会被发送到(M) - 实际上,(M)在这种情况下从不分析触摸,并且触摸被发送到层次结构中的下一个对象.
目标:我认为压倒一切hitTest:withEvent:可以解决这个问题,但我不明白究竟是怎么回事.在我的情况下,应该hitTest:withEvent: …
我想列出一个中的所有子视图UIViewController.我尝试过self.view.subviews,但并未列出所有子视图,例如,UITableViewCell未找到子视图.任何的想法?
我有一个自定义的UIView子类,它通过一个nib进行初始化.
在-awakeFromNib,我正在创建一个子视图,并试图将其置于超级视图中.
[self setInteralView: [[UIView alloc] init]];
[[self internalView] addConstraint: [NSLayoutConstraint constraintWithItem: [self internalView]
                                                                 attribute: NSLayoutAttributeCenterX
                                                                 relatedBy: NSLayoutRelationEqual
                                                                    toItem: self
                                                                 attribute: NSLayoutAttributeCenterX
                                                                multiplier: 1
                                                                  constant: 0]];
这会中断,并导致以下输出:
2013-08-11 17:58:29.628 MyApp[32414:a0b] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0xc1dcc80 UIView:0xc132a40.centerX == MyView:0xc1315a0.centerX>
    When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break …objective-c ios autolayout uiview-hierarchy nslayoutconstraint
当我尝试在导航控制器上呈现ActivityController时,我收到以下警告,
Attempt to present <UIActivityViewController: 0x15be1d60> on <UINavigationController: 0x14608e80> whose view is not in the window hierarchy!
我试图通过以下代码呈现视图控制器,
UIActivityViewController * activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
    activityController.excludedActivityTypes = excludeActivities;
    UIViewController *vc = self.view.window.rootViewController;
    [vc presentViewController: activityController animated: YES completion:nil];
    [activityController setCompletionHandler:^(NSString *activityType, BOOL completed) {
        NSLog(@"completed");
    }];
这里出了什么问题?
objective-c ios uiview-hierarchy uiactivityviewcontroller presentviewcontroller
有没有办法在Swift中使用[self.view recursiveDescription]?我试图使用此方法,但我收到以下错误:
'UIView' does not have a member named 'recursiveDescription'
有什么建议?
我可能在这里遗漏了一些东西,但......
我有一个UIView带几个孩子(一对夫妇UILabel的和UIImageView).当用户点击(点击)父级内部的任何位置时,我需要捕获一个事件UIView- UIView它或其任何子级的可见部分).
这样做的最佳方法是什么?
我想将以编程方式添加的mapView添加到层次结构视图的底部,因为我已经在故事板中预先绘制了一些元素.
所以,在我调用方法之后:
[self.view addSubview:self.map];
如何将它放在视图层次结构的底部?
这是一张图片,解释了我想做的一切:

我的问题是,我将如何制作我的视图结构.表视图的标题应固定在表的顶部.但是在表格视图标题上方的最顶层图像呢?我是否必须在UIScrollView中添加表视图?
视差效果可以通过CATransform3D,但我如何实现我想要的,这是我的问题.有很多演示,但我想让它完成自定义.
catransform3d uiviewanimationtransition ios uiview-hierarchy swift
我需要知道_UILayoutGuide,就像它是什么,它做什么和为什么它存在于层次结构UIView的subview几乎总是frame = (0,0,0,0).
我正在以编程方式创建我的视图层次结构,如下所示:
UIWindow* window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController1* viewController1 = [[UIViewController1 alloc] init];
UIViewController2* viewController2 = [[UIViewController2 alloc] init];
UINavigationController* navigationController = [[UINavigationController alloc] init];
[navigationController setViewControllers:@[viewController1, viewController2] animated:NO];
[window setRootViewController:navigationController];
[window makeKeyAndVisible];
两个VC都是从XIB加载的,在这两种情况下都使用autolayout.一切看起来都不错但是当我真的做了po [[UIWindow keyWindow] _autolayoutTrace]一件事时,我AMBIGUOUS LAYOUT在控制台中收到了一些令人担忧的警告:
*<UIWindow:0xc63bec0>
|   *<UILayoutContainerView:0xd3d79b0> - AMBIGUOUS LAYOUT
|   |   *<UINavigationTransitionView:0xd3d8b60> - AMBIGUOUS LAYOUT
|   |   |   *<UIViewControllerWrapperView:0xd566c00> - AMBIGUOUS LAYOUT
|   |   |   |   *<UIView:0xc66b290> - AMBIGUOUS LAYOUT
|   |   |   |   |   *<UIView:0xc66b0e0> - AMBIGUOUS LAYOUT …uiview-hierarchy ×10
ios ×9
iphone ×3
objective-c ×3
uiview ×3
autolayout ×2
swift ×2
ios8 ×1
subview ×1
uikit ×1