草庐IT

ios - 用户界面 View 。为什么在其父范围之外的 subview 不接收触摸?

我有一个简单的-琐碎的-UIView父/子层次结构。一位家长(UIView)。一个child(UIButton)。parent的边界比child的边界小,因此child的一部分会超出其parent的边界框。这就是问题所在:父级bbox之外的那些子级部分不会接收到触摸。只有在父级的bbox内点击才允许子级按钮接收触摸。有人可以建议修复/解决方法吗?更新对于那些关注这个问题的人,这是我根据@Bastians最出色的回答实现的解决方案:-(BOOL)pointInside:(CGPoint)pointwithEvent:(UIEvent*)event{BOOLisInside=[superp

ios - drawRect 在 subview 之上

我已经将UIView子类化并向其添加了一个drawRect方法。然后我使用这个自定义类定义一个View并向它添加subview。问题是drawRect似乎在subview下绘制东西(因此不可见)。我希望drawRect绘制的东西出现在我的自定义UIView的subview之上。这可能吗? 最佳答案 subview将始终绘制在其父View的“顶部”。根据您的具体要求,您可能需要一个普通的UIView作为背景/容器View,其中包含您现有的subview,然后您的自定义View作为另一个subview添加到最顶部,因此它具有最高Z顺序。

iphone - 如何将不透明的 UIView 作为半透明 UIView 的 subview ?

我有一个alpha为0.5的UIView,我将它作为subview添加到我的主视图中,以便使其他所有内容变灰。我想向这个灰色的UIView添加一个额外的UIView作为subview-问题是当我这样做时,我新添加的subview也是部分透明的。有什么方法可以让subview“忽略”其父View的alpha值并使其本身完全不透明? 最佳答案 设置UIView背景颜色alpha而不是直接设置alpha。objective-CUIView*view;...view.backgroundColor=[[UIColorblackColor]c

ios - 无法将谷歌地图 GMSMapView 放在主视图的 subview 中?

我正在为这个问题苦苦挣扎!我想将谷歌地图GMSMapView添加到UIView中,它只是我的ViewController的主要UIView的一部分>.它应该很简单...我用Storyboard创建了一个我想要大小的UIView并将其放在主UIView中。接口(interface)文件的片段:@interfaceMapViewController:UIViewController@property(nonatomic)IBOutletGMSMapView*mapView;在主UIView中与此UIView链接的mapView。我在实现中做了什么:@synthesizemapView=_m

ios - UIStackView : Is it really necessary to call both removeFromSuperView and removeArrangedSubview to remove a subview?

来自UIStackViewClassReference在removeArrangedSubview中:Topreventtheviewfromappearingonscreenaftercallingthestack’sremoveArrangedSubview:method,explicitlyremovetheviewfromthesubviewsarraybycallingtheview’sremoveFromSuperviewmethod.在排列subview中:Wheneveranarrangedview’sremoveFromSuperviewmethodiscalled,

ios - 点击时如何将 subview 置于最前面?

我有一个包含大约30个subview的View。我想在我的subview的ViewController中添加代码,这样当我点击subview时,subview就会展开以填满屏幕。我正在使用[self.viewsetFrame:rect]来扩展subview,这很好用。问题是其他29个subview中的一些位于我刚刚点击的subview上方,因此它们仍然可见。我试过从父ViewController使用bringSubviewToFront,但这似乎没有效果。我可以在subview的viewcontroller类中放入任何代码来实现这一点吗? 最佳答案

ios - 如何忽略触摸事件并将它们传递给另一个 subview 的 UIControl 对象?

我有一个自定义的UIViewController,它的UIView占据了屏幕的一角,但大部分是透明的,除了上面有一些按钮和东西的部分。由于该View上对象的布局,View的框架可能会掩盖其下方的一些按钮。如果他们没有触摸任何重要的东西,我希望能够忽略对该View的任何触摸,但我似乎只能传递实际的触摸事件(touchesEnded/nextResponder东西)。如果我有一个不使用touchesEnded的UIButton或类似的东西,我该如何将触摸事件传递给它?我不能只是手动找出要调用的按钮选择器,因为这个自定义ViewController可以用于许多不同的View。我基本上需要一种

ios - subview Controller 中的 topLayoutGuide

我有一个带有半透明状态栏和导航栏的UIPageViewController。正如预期的那样,它的topLayoutGuide是64像素。但是,UIPageViewController的subviewController报告topLayoutGuide为0像素,即使它们显示在状态栏和导航栏下方也是如此。这是预期的行为吗?如果是这样,将subviewController的View放置在真实topLayoutGuide下的最佳方法是什么?(没有使用parentViewController.topLayoutGuide,我认为这是hack) 最佳答案

ios - 如何在 iOS 中列出 uiviewcontroller 中的所有 subview ?

我想列出UIViewController中的所有subview。我尝试了self.view.subviews,但是没有列出所有的subview,例如,没有找到UITableViewCell中的subview。有什么想法吗? 最佳答案 您必须递归地迭代subview。-(void)listSubviewsOfView:(UIView*)view{//GetthesubviewsoftheviewNSArray*subviews=[viewsubviews];for(UIView*subviewinsubviews){//Dowhaty

iphone - drawRect 或不 drawRect(什么时候应该使用 drawRect/Core Graphics vs subviews/images,为什么?)

为了澄清这个问题的目的:我知道如何使用subview和使用drawRect创建复杂的View。我试图完全理解何时以及为什么使用一个而不是另一个。我也明白提前优化并在进行任何分析之前以更困难的方式做一些事情是没有意义的。考虑到我对这两种方法都很满意,现在真的想更深入地了解。我的很多困惑来自于学习如何使表格View滚动性能真正平滑和快速。当然这个方法的原始出处来自authorbehindtwitter适用于iPhone(以前的推特)。基本上它说要使表格滚动平滑,秘诀是不要使用subview,而是在一个自定义uiview中进行所有绘图。从本质上讲,使用大量subview似乎会减慢渲染速度,因