草庐IT

ios - 以编程方式以正确方向显示 UIView 的最佳实践

我正在构建一个monoTouch-iPad应用程序,但由于启动界面方向的原因,我遇到了麻烦。一个问题是,当应用程序启动时UIDevice.CurrentDevice.Orientation总是返回Unknown。您如何决定应用程序的启动方向?我现在找到的所有属性都只返回纵向模式,未知或纵向模式的帧大小-即使它是横向模式。我还创建了两个UIView(一个用于横向,一个用于纵向),现在在UIViewController的WillRotate方法中更改它们。但是我的代码:if(toInterfaceOrientation==UIInterfaceOrientation.LandscapeLe

ios真空包装UIView

我的UIView内部有动态数量的View,并且还具有背景颜色。我试图将UIView塞进所有项目中,但它不起作用。[selfsizeToFit]似乎在UILabel上工作得很好,但在UIView上却不行。我知道我可以通过遍历所有subview来手动计算面积,但是对于这样的事情来说,这似乎工作量太大了。我希望有人知道更简单的方法..谢谢 最佳答案 更新如果您正在使用自动布局,您可以让您的容器View紧贴其subview。在容器与其subview之间设置约束,并在subview与容器的父View之间设置约束,但不要在容器与其父View之间

ios - 重叠的 UIView 上的 UITouch

我有两个View,每个View包含两个subview。只要两个顶View不重叠,命中检测就可以正常工作。因此,我可以触摸下图左侧标记为A的subview。但是,一旦顶部的两个View重叠,AView就无法接收触摸,因为View​​1“高于”View2并“吃掉”触摸。View1和View2都可以检测触摸,因为它们可以四处移动,因此需要检测subview“之间”的触摸并对其使用react。这意味着我的两个“顶部View”检测应该说:“哦,等一下,也许我正在重叠其他View并且应该将事件传递给它,并且只有当且仅当没有其他View是“低于我”的。我该怎么做?编辑:谢谢jaydee3一开始这不起

ios - 由于内存使用异常,具有 drawRect 定义的 subview 的启用 CATiledLayer 的 UIView 崩溃

我们在iPad3上发生了内存不足的崩溃,我们将其追溯到以下场景:使用CATiledLayer并绘制内容(例如PDF)的UIView具有带有自己的drawRect方法的subview(例如,突出显示搜索结果)。这使得CoreAnimation消耗大量内存(在VMTracker工具中超过100MB),并且很容易导致崩溃。虽然此问题存在于所有设备上,但只有iPad的Retina显示屏会导致缓存大小过大。这可以用Apple的PhotoScroller复制示例:子类化UIView,取消注释drawRect,并向TilingView添加一个实例。该应用程序将在iPad3上崩溃。注释drawRect

iphone - 使用 addTarget 定位 UIView 中的 UIButton

MyViewController.m创建了一个myUIView的实例。在myUIView中创建了一个UIButton。一切似乎都很好,除了我在ViewController级别使用addTarget捕获按钮按下。按下按钮会导致崩溃,显示:“无法识别的选择器已发送到实例0x6c254e0...”这个addTarget代码有错吗?非常感谢任何人的帮助。-(void)viewDidLoad{[myUIView.myButtonaddTarget:selfaction:@selector(myButtonIsPressed:)forControlEvents:UIControlEventTouc

ios - 如何仅在复合 UIView 的一部分应用 3d 透视变换?

我有带UIImageViews、UILabels、UITextView的UIView。我的目标是转换中间部分,使其看起来像折叠一张纸:-顶部和底部保持不变,只是它们相互滑动-中间部分向屏幕折叠(如在Clear应用程序中:http://blog.massivehealth.com/post/18563684407/clear?cbe4fc38)我的想法是首先加载整个View,然后分成4部分,将中间两部分制作成CGImage并以某种方式为它们制作透视动画,同时变换顶部和底部部分,以便它们相互滑动(最后,中间两部分零件应该变得不可见)。我还应该能够展开此View并滚动UITextView。我

iphone - 为 UIView 更改设置动画,其中 UIView 已完全重建

我的UIViewController得到它正在控制的View,用这样的东西完全重建自己:[self.viewrebuildYourself:bIsLandscape];//thislineisintheViewController然后View本身包含以下方法:-(void)rebuildYourself:(BOOL)isLandscape{NSArray*viewsToRemove=[selfsubviews];for(UIView*vinviewsToRemove){[vremoveFromSuperview];}[selfaddControls];//addslotsofviews

ios - 多个 UIView 的重叠

我正在自定义UIView中创建多个自定义UIView。自定义subview的创建是可以的。它们看起来像这样:绘制方法非常简单:[[UIColorbrownColor]set];CGContextRefctx=UIGraphicsGetCurrentContext();CGContextSetLineWidth(ctx,5.0f);CGContextBeginPath(ctx);CGContextMoveToPoint(ctx,0.0f,0.0f);CGContextAddLineToPoint(ctx,100.0f,0.0);CGContextAddLineToPoint(ctx,13

ios - 异步加载 UIView

我正在尝试异步加载View。问题是要加载的View框架取决于异步加载的数据。换句话说,有一些长计算决定实际显示UIView的位置。我知道尝试在线程中实际显示UIView时会出现问题,您应该始终将它们加载回主线程,所以这是我一直在尝试的代码:asyncQueue=[[NSOperationQueuealloc]init];[asyncQueueaddOperationWithBlock:^{//DoworktoloadtheUIViewsandfigureoutwheretheyshouldbeUIButton*test=[[UIButtonalloc]initWithFrame:[se

iphone - UIView 贴在 UIScrollView 的底部

所以我在UIViewController的UIView中有一个UIScrollView,我在其中添加了一个UIView,我希望它始终停留在底部,无论方向如何变化。所以我有以下内容:问题是,当我旋转到横向时,ScrollView内容大小高度肯定会大于框架高度,因此它会向下滚动。但是,我想粘在底部的这个UIView不会粘住。无论方向如何变化,如何让它始终粘在底部。当我禁用UIScrollView自动调整subview时,这个UIView会粘在底部,但旋转时宽度不会调整 最佳答案 您应该尝试以下列方式使用自动调整大小的蒙版yourview