草庐IT

ios - 检测 UIView 框架外触摸的通用方法

我有一个UIViewController,里面有一个自定义的UIView(我们称它们为VC和按钮)。触摸按钮时,它的边界和中心会随着动画而变化(它会变大并提供一些可供选择的选项,选择后它会调整大小)。我想知道如何“检测”(并解除该触摸的默认操作)按钮外的触摸(只是为了“隐藏”按钮,特别是将按钮调整为默认较小的尺寸)。有什么通用的方法可以做到这一点吗?VC的View中有很多对象(表格View、按钮、文本字段、用quartzcore制作的自定义图表等),我是否需要在按钮的“大模式”期间阻止所有这些元素的“交互性”? 最佳答案 您可以子类

iphone - 如何在 IOS 上展开和折叠 uiview

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我是iPhone/iPad开发的新手。你能帮我以编程方式创建这个吗?我想以编程方式展开/折叠UIView。任何人都知道如何做或任何我可以遵循的教程?我试图找到教程,但找不到我想要的。下面是我想做的截图

ios - UIView drawRect : Draw the inverted pixels, 打洞、开窗、负空间

使用下面的代码,我绘制了一个圆角矩形。它绘制了一个漂亮的实心浅灰色填充圆角矩形(大小为“self”)。我实际上想绘制它的像素反转,即:不是实心圆角矩形,而是在实心浅灰色矩形中的这个圆角矩形形状的窗口或孔。是否有我需要使用的反向剪辑方法?或者我需要使用贝塞尔路径吗?请原谅,如果这是非常基本的,虽然找不到信息。感谢阅读!-(void)drawRect:(CGRect)rect{//getthecontextCGContextRefcontext=UIGraphicsGetCurrentContextCGContextSaveGState(context);//drawtheroundedr

ios - 动画结束后从 super View 中移除 UIView

我正在为UIView(alpha)属性制作动画,我希望在动画完成后我可以将它从superView中删除。-(void)hideOverlayView{[UIViewbeginAnimations:nilcontext:nil];[UIViewsetAnimationDuration:1.0];[topViewsetAlpha:0];[UIViewcommitAnimations];}一种选择是使用带有延迟选项的performSelector,但有没有更紧凑的方法?更新1:为什么这段代码会立即删除View?[UIViewbeginAnimations:nilcontext:nil];[U

objective-c - 如何防止 UIView 消耗用户输入

我有一个简单的View层次结构示例。显然,主视图空间是用户将与之交互的主要空间。在底部,我有一些选项卡可以弹出,以向​​用户指示他/她在应用程序进程中的位置。通常,这些选项卡只占用底部“自定义选项卡”矩形指示的空间,但它们可以一直向上扩展以填充“空白空间”框。为了使选项卡仍可点击,我必须将选项卡View的框架设为包含“自定义选项卡”空间和“空白空间”空间的完整矩形。这导致的是,当标签未弹出时,“空空间”没有与用户交互,因为该输入基本上是被Uiview所消耗的,而不是通过层次结构的其余部分转发。我想这个问题的根源是“主视图空间”和“空白空间+自定义选项卡”都是主窗口的subview。如果

objective-c - UIView animateWithDuration : animations: completion: applies transform, 没有动画

试图从KVO观察调用此消息。下载图像后,将发送此消息。完成block中的消息还包含一个正常工作的动画(动画正确)。此动画在不发生动画的情况下应用变换(等待动画的长度,然后跳转到最终状态)。/***Discoverthesubviewwiththesuppliedtag,attachthefullsizeimagetotheview*scaletofullsizeandbeginretract.*@paramviewTagint-#FUTUREUSE#-Thetagoftheviewtobeanimated.*@paramimageUIImage-#FUTUREUSE#-Theimage

ios - 将 UIView 透视变换与其他 CATranform3D 相结合

我正在编写一个应用程序,可以使用手势在屏幕上旋转、调整大小和平移Sprite(UIImageView的子类)。我还希望能够对Sprite应用3D透视变换。我的旋转/调整大小/平移功能以及透视变换功能正常工作。但是,它们似乎无法正确协同工作。如果我旋转一个未修改的Sprite,然后尝试倾斜它,Sprite会“重置”它的旋转,然后应用透视。反之亦然;如果我先倾斜,我可以在不重置的情况下应用任何2D变换。这是我正在使用的代码:(旋转、调整大小和平移是使用UIGestureRecognizers完成的,而倾斜使用UISlider)。旋转:-(void)didRotateSprite:(UIRo

ios - 删除 UIVIew 的背景 - 删除矩形形状

我有一个UIView,我想在其中删除整个背景,使其呈现纸张的形状。我尝试将背景从UI设置为透明并使用代码,但无论我做什么,我总是以类似灰色的半透明背景结束。这是我得到的当前输出:如何去除灰色背景?我需要它在没有残留的情况下作为整张纸显示。有帮助吗?我尝试了以下方法://self.view.backgroundColor=[UIColorclearColor];////[self.viewsetOpaque:YES];////self.view.backgroundColor=[UIColorclearColor];.//self.view.layer.borderWidth=0.0;/

ios - VIPER 中的 UIView 动画代码放在哪里?

按照VIPER设计模式,UIView动画代码应该放在哪里?它应该在View中还是在Presenter中?注意:我有一个CustomView,我希望它在触摸时在屏幕上移动。CustomView被添加到我的ViewController中的屏幕上 最佳答案 你应该把它放在[R]外层。thisarticle中对其进行了详细描述:SincethePresentercontainsthelogictoreacttouserinputs,itisthePresenterthatknowswhentonavigatetoanotherscreen,

ios - UIView:继承触摸

示例1:在应用程序图标上调用3DTouch时,您无需抬起手指即可进行选择。示例2长按键盘按键,无需抬起手指即可拖入不同的选项。如果应用程序图标是第一个View,弹出窗口是第二个View,我如何将触摸从第一个View转移到第二个View? 最佳答案 通常,当手指离开View时,View会失去对触摸的控制。但是如果你设置isMultipleTouchEnabled为true,如果手指离开它的区域,它将保持对触摸的控制。如果您使用按钮或另一个UIControl,您可以将操作分配给touchDragExit、touchUpOutside或t