草庐IT

ios - 没有 drawRect : 的 Live Xcode 的 Interface Builder UIView 子类 (IB_DESIGNABLE)

是否可以创建一个UIView子类,在Xcode中实时呈现(通过添加IB_DESIGNABLE属性,如here所述),但没有自定义drawRect:方法?我们有一个自定义的UIView子类,它使用一些CAShapeLayer添加到self.layer进行绘图(因此,不需要覆盖drawRect:)。此类在App上运行良好,但无法在Xcode上呈现。如果我们复制drawRect:中的代码,它可以工作,但我们更愿意让绘图在图层上自动发生。这可以做到吗?我也试过-(void)drawRect:(CGRect)rect{CGContextRefcurrentContext=UIGraphicsGe

ios - 将屏幕坐标转换为 UIView 本地点

我看过很多关于如何将UIView的局部点转换为屏幕坐标的示例。例如,CGPointsubContentLocalPoint=subContent.frame.origin;CGPointbasePos=[subContentconvertPoint:subContentLocalPointtoView:nil];但是如何做相反的事情呢?(即将屏幕坐标转换为UIView本地点。)例如,屏幕坐标-x:90y:100UIView内容-x:0y:0//因为这是UIView对象在屏幕上的位置。 最佳答案 特定View的屏幕坐标:UIView*

ios - 调整从 xib 创建的 UIView 的大小?

我正在从xib创建UIView以最终呈现为UIImage。UIView本身有内部约束,如果在IB中有足够大的帧大小,它可以正常工作。但是,我需要调整某些特定内容的宽度,而且我不知道如何在从xib加载后设置UIView的宽度。[[NSBundlemainBundle]loadNibNamed:@"MyView"owner:selfoptions:nil][0];为了呈现View,我这样做:UIGraphicsBeginImageContextWithOptions(view.bounds.size,NO,0.0);[view.layerrenderInContext:UIGraphics

ios - 设置约束与设置 UIView 框架的优点

设置约束与简单设置UIView的框架相比有什么优势?约束可以做什么,简单地设置基于UIScreen.MainScreen.Bounds或View.Bounds的框架不能? 最佳答案 设置框架并不能保证在框架改变(通过旋转)时调整大小。自动布局确实通过根据框架和相对大小调整View来保证这一点。您很可能会在多方向应用程序中使用自动布局。 关于ios-设置约束与设置UIView框架的优点,我们在StackOverflow上找到一个类似的问题: https://st

iphone - 从一个 UIViewController 管理多个 UIView

我对ViewController感到困惑,想要一个直接的例子。这是序言:我有一个带有匹配.xib的UIViewController。默认情况下,IB在文档窗口中给我一个View。我可以让我的UIWindow显示addSubview:controller.view和bringSubviewToFront:controller.view问题如下:我应该向IB中的ViewController添加另一个View吗?或者有更好的程序化方式吗?如何告诉ViewController在View之间切换?从ViewController向下看,实现此目的的代码是什么样的?我正在尝试一些事情,但只是弄得一团

iphone - UIView 动画完成 block 在其他动画开始时触发

我在iOS上为我的动画使用block基础API。一个动画有一个完成block,该block在动画结束时被调用,很好。但是,当用户滚动时可以多次触发该动画(动画在UITableViewCell上)。当发生这种情况时,完成block将被多次调用。block的finished参数始终为YES。由于动画实际上并没有结束(另一个动画发生了),我认为finished参数应该是NO,但事实并非如此。我错过了什么吗?如何避免多次调用完成block? 最佳答案 多次调用完成block只是因为在您的情况下,您的动画被多次触发。正在发生的事情是,iOS每

iphone - 直接设置原点和大小的 UIView 类别

我是iPhone应用程序编程的初学者。我真的不喜欢我们必须设置原点和尺寸的方式,例如:UIView*view;CGRectframe=view.frame;frame.origin.x=100;view.frame=frame;或:UIView*view;view.frame=CGRectMake(100,view.frame.origin.y,view.frame.size.width,view.frame.size.height);所以我为UIView创建了一个类别,例如:@interfaceUIView(Origin)-(void)setOriginX:(CGFloat)x;-(

ipad - 切换方向时如何使 UIView 自动调整为全屏

是否需要编写代码让UIView在切换方向时填满窗口区域?有没有简单的设置? 最佳答案 如果View最初占据了整个屏幕,并且应用程序设置为自动旋转,您所要做的就是在View上设置自动调整大小掩码以调整宽度和高度:view.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;编辑:请参阅下面我的评论,了解如何在IB中执行此操作 关于ipad-切换方向时如何使UIView自动调整为全

objective-c - iOS UIView 动画(animationWithDuration :) with multiple options

我正在尝试使用animationWithDuration和多个选项实现一个UIView动画block。它工作正常,除了它似乎只使用我指定的选项之一而不是所有三个选项。我可以指定的选项数量是否有限制,或者某些选项的组合是否有限制?下面是我的代码。“starRotator”是我正在旋转的UIView中的一个UIImageView。我尝试将选项括在括号中,但这也不起作用。它似乎只采用UIViewAnimationOptionRepeat选项而忽略其他两个。[UIViewanimateWithDuration:30.0delay:0.0options:UIViewAnimationCurveL

objective-c - UIView 子类调用 UIView+Category 方法时抛出 "Selector not found"

我有UIView的子类MyView。我在UIView上还有一个名为UIView+simpleCategory的类别。这个类别声明了一个方法doSomething@interfaceUIView(simpleCategory)-(void)doSomething;@end我在从UIView子类MyView调用doSomething方法时遇到问题。我收到“选择器无法识别”错误。我想知道我需要做什么才能让子类识别其父类(superclass)的类别方法。在我的UIView子类的实例上调用UIView类别方法时出现问题:MyView*view=[[MyViewalloc]init];[view