Questions tagged «uiview»

UIView是iOS的UIKit框架中的类,它定义了屏幕上的矩形区域以及用于管理该区域中内容的界面。所有UI元素要么是UIView的子类,要么包含在UIView中。


21
如何将UIView转换为图像
我想将UIView转换为图像并将其保存在我的应用程序中。有人可以告诉我如何拍摄视图的屏幕截图或将其转换为图像,以及将其保存在应用程序(而不是相机胶卷)中的最佳方法是什么?这是该视图的代码: var overView = UIView(frame: CGRectMake(0, 0, self.view.frame.width/1.3, self.view.frame.height/1.3)) overView.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds)-self.view.frame.height/16); overView.backgroundColor = UIColor.whiteColor() self.view.addSubview(overView) self.view.bringSubviewToFront(overView)
93 ios  swift  uiview  screenshot 

4
如何创建UIView跳动动画?
对于名为的UIView finalScoreView,我具有以下CATransition ,这使它从顶部进入屏幕: CATransition *animation = [CATransition animation]; animation.duration = 0.2; animation.type = kCATransitionPush; animation.subtype = kCATransitionFromBottom; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; [gameOver.layer addAnimation:animation forKey:@"changeTextTransition"]; [finalScoreView.layer addAnimation:animation forKey:@"changeTextTransition"]; 我如何使它下降后反弹一次,然后保持静止?它仍然应该从顶部进入屏幕,但是当它下来时会反弹。 任何帮助将不胜感激,谢谢!

8
超越UIView的交互
当UIButton的框架位于其父框架的外部时,UIButton(或与此相关的任何其他控件)是否有可能接收触摸事件?原因是当我尝试此操作时,我的UIButton似乎无法接收任何事件。我该如何解决?


7
如何在iOS中将UIView转换为PDF?
有关如何在App的中显示PDF的资源很多UIView。我现在正在做的是从中创建PDF UIViews。 例如,我有一个UIView,与像Textviews子视图,UILabels,UIImages,所以我怎么能转换成一个大的 UIView整体,包括其所有子视图和subsubviews到PDF? 我检查了Apple的iOS参考。但是,它仅涉及将文本/图像写入PDF文件。 我面临的问题是我想以PDF格式写入文件的内容很多。如果我将它们逐段写入PDF,这将是一项巨大的工作。这就是为什么我正在寻找一种写UIViewsPDF甚至位图的方法。 我已经尝试过从Stack Overflow中的其他Q / A复制的源代码。但这只给我一个空白PDF,其UIView边界大小。 -(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename { // Creates a mutable data object for updating with binary data, like a byte array NSMutableData *pdfData = [NSMutableData data]; // Points the pdf converter to the mutable data object and to the UIView to be converted …

7
iOS白色到透明渐变层为灰色
我在此小细节视图的底部插入了一个CAGradientLayer,该视图会在应用程序的底部弹出。如您所见,我将颜色从白色设置为清晰,但是却出现了这种奇怪的灰色调。有任何想法吗? // Set up detail view frame and gradient [self.detailView setFrame:CGRectMake(0, 568, 320, 55)]; CAGradientLayer *layer = [CAGradientLayer layer]; layer.frame = self.detailView.bounds; layer.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor, nil]; layer.startPoint = CGPointMake(1.0f, 0.7f); layer.endPoint = CGPointMake(1.0f, 0.0f); [self.detailView.layer insertSublayer:layer atIndex:0]; 这是有问题的视图:

16
删除所有影响UIView的约束
我有一个通过多个约束放置在屏幕上的UIView。某些约束由超级视图拥有,而其他约束则由其他祖先拥有(例如,UIViewController的view属性)。 我想删除所有这些旧约束,并使用新约束将其放置在新位置。 在不为每个约束创建IBOutlet且必须记住哪个视图拥有所述约束的情况下,如何做到这一点? 详细地说,幼稚的方法是为每个约束创建一堆IBOutlet,然后涉及调用代码,例如: [viewA removeConstraint:self.myViewsLeftConstraint]; [viewB removeConstraint:self.myViewsTopConstraint]; [viewB removeConstraint:self.myViewsBottomConstraint]; [self.view removeConstraint:self.myViewsRightConstraint]; 此代码的问题在于,即使在最简单的情况下,我也需要创建2个IBOutlet。对于复杂的布局,这可以轻松达到4或8个所需的IBOutlets。此外,我需要确保在适当的视图上正在调用删除约束的调用。例如,假设myViewsLeftConstraint归拥有viewA。如果我不小心打了电话[self.view removeConstraint:self.myViewsLeftConstraint],什么也不会发生。 注意:方法constraintsAffectingLayoutForAxis看起来很有希望,但仅用于调试目的。 更新:很多我收到处理问题的答案self.constraints,self.superview.constraints或一些人的变种。这些解决方案将不起作用,因为这些方法仅返回视图所拥有的约束,而不会影响那些约束视图。 为了阐明这些解决方案的问题,请考虑以下视图层次结构: 祖父 父亲 我 儿子 女儿 哥哥 叔叔 现在想象我们创建以下约束,并将它们始终附加到最接近的共同祖先: C0:我:与儿子(我拥有)同上 C1:我:宽度= 100(属于我) C2:我:与兄弟(父亲拥有)相同的身高 C3:我:和叔叔一样(祖父拥有) C4:我:与祖父(祖父拥有)同左 C5:兄弟:与父亲相同(父亲拥有) C6:叔叔:与祖父(祖父拥有)相同 C7:儿子:和女儿(我所有)同左 现在想象我们要删除所有影响的约束Me。任何适当的解决方案都应该删除,[C0,C1,C2,C3,C4]并且别无其他。 如果我使用self.constraints(自我就是我),我将得到[C0,C1,C7],因为这些是我所拥有的唯一约束。显然,仅仅删除它是不够的,因为它丢失了[C2,C3,C4]。此外,它是C7不必要地删除。 如果我使用self.superview.constraints(自我就是我),我会得到[C2,C5],因为那是父亲的约束。显然,我们无法删除所有这些内容,因为它们C5与完全无关Me。 如果我使用grandfather.constraints,我会得到[C3,C4,C6]。同样,我们不能删除所有这些内容,因为它们C6应保持不变。 蛮力方法是循环在每个视图的祖先(包括其本身)的,并且如果看到firstItem或secondItem是视图本身; 如果是这样,请删除该约束。这将导致正确的解决方案,return [C0,C1,C2,C3,C4],并且仅是那些约束。 但是,我希望有一个比必须遍历整个祖先列表更优雅的解决方案。

8
在UIView中画线
我需要在UIView中绘制一条水平线。什么是最简单的方法。例如,我想在y-coord = 200处绘制黑色水平线。 我没有使用Interface Builder。
86 ios  iphone  uiview 



10
在2017年使用IBDesignable绘制点划线(而不是虚线!)
使用UIKit绘制虚线很容易。所以: CGFloat dashes[] = {4, 2}; [path setLineDash:dashes count:2 phase:0]; [path stroke]; 有没有办法画出真实的虚线? 有任何想法吗? 由于此问题确实存在很久,并且没有人提出完整的@IBDesignable解决方案,因此这里是... 希望它可以节省一些键入的时间。 @IBDesignable class DottedVertical: UIView { @IBInspectable var dotColor: UIColor = UIColor.etc @IBInspectable var lowerHalfOnly: Bool = false override func draw(_ rect: CGRect) { // say you want 8 dots, with perfect fenceposting: let totalCount …
86 ios  swift  uiview  uikit 

10
在UIView上设置Alpha会在其子视图上设置Alpha,这不应发生
根据文档 UIVIew @property(nonatomic) CGFloat alpha 此属性的值是介于0.0到1.0之间的浮点数,其中0.0表示完全透明,而1.0表示完全不透明。 此值仅影响当前视图,并且不影响其任何嵌入式子视图。 我有一个配置如下的容器视图: self.myView.backgroundColor = [UIColor blackColor]; self.myView.alpha = 0.5; [self addSubview:self.myView]; 然后将子视图添加到“ myView” [myView addSubView anotherView]; anotherView.alpha = 1; NSLog(@"anotherView alpha = %f",anotherView.alpha); // prints 1.0000 as expected 但是' anotherView '的确在屏幕上有Alpha(它并非如预期的那样不透明) 怎么可能?该怎么办?

4
使用自动布局动态更改子视图后调整视图的大小
我不能为上帝的爱而努力,而这正是调整规模的Superview的用处。 我有一个UIView *superview 4 UILabels。2个用作其他2个的标头。 所有4个内容都是动态的,都来自数据库。 SizeToFitvs vs SizeThatFits:(CGSize)vs UIView systemLayoutSizeFittingSize:,通过UILayoutFittingCompressedSize或UILayoutFittingExpandedSize。 我以编程方式使用自动布局,并将Superview高度设置为等于或大于虚拟数字。 在那里,我如何使用这些SizeToFitVS sizeThatFits:(CGSize)VS UIView systemLayoutSizeFittingSize:,无论是传球UILayoutFittingCompressedSize还是UILayoutFittingExpandedSize。我在这里已经阅读了很多技巧,但最终没有结果。 我是否需要重新计算特定位置的Superview约束。Maby在其控制器类中将高度设置为“ @property”,然后删除并读取它吗?Atm我已尝试将所有内容放到任何地方,然后再放一些。我仍然得到相同大小的最终结果,虚拟高度和文本漂浮在外面。即使在子视图上设置了clipsToBound之后。 我正在挠..帮助

6
为什么masksToBounds = YES可以防止CALayer阴影?
使用以下代码段,我向一个UIView添加了阴影效果。哪个效果很好。但是,一旦我将视图的masksToBounds属性设置为YES。阴影效果不再呈现。 self.myView.layer.shadowColor = [[UIColor blackColor] CGColor]; self.myView.layer.shadowOpacity = 1.0; self.myView.layer.shadowRadius = 10.0; self.myView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); self.myView.layer.cornerRadius = 5.0; self.myView.layer.masksToBounds = YES; // <-- This is causing the Drop shadow to not be rendered UIBezierPath *path = [UIBezierPath bezierPathWithCurvedShadowForRect:self.myView.bounds]; self.myView.layer.shadowPath = path.CGPath; self.myView.layer.shouldRasterize = YES; 您对此有什么想法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.