草庐IT

ios - 使用参数创建自定义 UIView init 方法

我正在寻找如何使用传入参数的自定义init方法正确子类化UIView。我已阅读此处的UIView类引用文档:https://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html目前UIView是在UIViewController中创建的,可以移动/重构到它自己的子类中。此外,目前View完全在代码中创建,框架由添加到View本身的约束计算。文档说明如下initWithFrame:-Itisrecommendedthatyouimplementthisme

objective-c - 动画 UIView 框架, subview UIScrollView 并不总是动画

在this示例。当我对tabBarController进行动画处理时(为了全屏效果),我正在对PhotoViewerViewController的框架进行动画处理。PhotoViewer使用uiscrollview来生成与Apple的照片应用程序相同的效果。无论出于何种原因,它有时会与我的PhotoViewer框架一起动画,有时则不会。您可以在第一个示例中看到它在增加帧大小时跳转,但在减小帧大小时(并恢复标签栏)时动画效果很好。然而在this例如,当照片是垂直的时,它会在两个方向上跳跃。在这两种情况下,如果我使用ScrollView放大照片,它会在两个方向上正确地显示动画。我知道那里有

iphone - 用静态方法在 UIView 上绘制清晰的颜色(切一个洞)

我有一个iPhone应用程序,我需要实现以下方法:+(UITextView*)textView:(UITextView*)withCuttedRect:(CGRect)r此方法必须从UITextView剪切(用[UIColorclearColor]填充)矩形r并返回UITextView对象。用户将从切开的孔中看到UITextView后面的View。如何实现? 最佳答案 当你有这样的事情时:+(UITextView*)textView:(UITextView*)textViewwithCuttedRect:(CGRect)r{}您实际

iOS PDFKit 不填充 UIView

我正在使用PDFKit来显示简单的PDF。当我在UIView内的屏幕上显示它们时,我使用了下面的代码。目标:-从填充View的内容开始-想要填充整个屏幕宽度overridefuncviewDidLoad(){super.viewDidLoad()ifletpath=Bundle.main.path(forResource:"Disclaimer",ofType:"pdf"){leturl=URL(fileURLWithPath:path)ifletpdfDocument=PDFDocument(url:url){pdfView.document=pdfDocumentpdfView.a

iphone - 避免 UIView 创建非常大的绘图 Canvas

我从UIView派生了一个类,才意识到由于内存的原因,它的大小确实存在限制。我在UIScrollView中有这个UIView。有没有办法让我在不是UIView派生类但我仍然可以在其中绘制并且可以非常非常大的ScrollView中放置一些东西?我不介意必须响应expose-rectangle事件,就像使用传统窗口系统时那样。谢谢。 最佳答案 UIScrollView中的内容必须是UIViews,由于内存原因,它们的大小受到限制。出于性能原因,UIView维护一个位图后备存储,因此它必须分配与其大小成比例的内存。处理此问题的通常方法是生

ios - Xcode 4.2 改变了 UIView 触摸处理行为?

我几天前将我的iPad升级到5.0,同时将Xcode升级到4.2,以便我可以继续测试我的应用程序。现在我在使用以前版本的Xcode的几个应用程序中遇到触摸代码问题。我通过覆盖-(void)TouchesBegan和-(void)TouchesMoved将UIImageView子类化以添加一些拖动功能。我没有覆盖子类中的-(void)TouchesEnded,但在包含ImageView的View的ViewController中处理了它。我将子类UIImageView拉到一个新项目中进行测试,并将问题缩小到父类UIView(由Xcode)似乎没有将触摸事件转发到ViewController

ios - 为什么图层转换会影响 UIView 的框架?

转换UIView会影响它的框架。转换UIView的图层也会以相同的方式影响View框架。所以缩放View的层,缩放框架。我试图理解为什么对图层的转换会影响View框架(即使设置了view.layer.masksToBounds=NO)。UIView*view=[[UIViewalloc]initWithFrame:CGRectMake(0,0,50,50)];NSLog(@"Before:%@",NSStringFromCGRect(view.frame));//Output:{{0,0},{50,50}}//Viewtransformappliedview.transform=CGA

iphone - 如何在 UIView 中确定手势识别器和触摸的优先级

来自阅读UIGestureRecognizerClassReference这意味着API将为您处理触摸和手势控制的优先级排序,确保您的touchesBegan和相关方法不会在View上调用,除非手势识别器首先失败:Awindowdeliverstoucheventstoagesturerecognizerbeforeitdeliversthemtothehit-testedviewattachedtothegesturerecognizer.Generally,ifagesturerecognizeranalyzesthestreamoftouchesinamulti-touchseq

ios - 让 UIView drawRect 出现在后台线程中

我想要一个UIView子类来实现类似于setNeedsDisplay的方法,除了重绘(即通常通过drawRect调用:)将很快在后台线程中发生,而不是在当前更新周期结束时发生。它可能被称为setNeedsAsynchronousDisplay。或者现有的setNeedsDisplay可能会被劫持,并且不会在循环结束时导致重绘,或者其他任何情况,只要它让重绘不会发生在主线程上,阻塞屏幕更新交互直到完成。在重绘发生之前,View可以继续使用其当前绘制的表示。按照这些思路合理可行吗?谢谢! 最佳答案 是的,这是可能的。您可能需要在后台将内

ios - 如何将 UICollectionView 作为 subview 添加到 UIView?

好吧,我在编译这段代码时得到了一个(lldb)。我正在尝试将UICollectionView添加到Storyboard中的UIView中。这不对吧?#import"MyViewController.h"#import"TLSpringFlowLayout.h"#import"TLViewController.h"@interfaceMyViewController()@end@implementationMyViewController@synthesizecollectionViewController;-(void)viewDidLoad{[superviewDidLoad];//