草庐IT

iphone - 为什么 UIView 的边界是 CGRect 而不是 CGSize?

UIView(NSView)的bounds属性是CGRect的原因是什么?在该属性中是该CGRect的大小。它只是绘图的快捷方式吗,因为您在绘图时需要CGRect?或者只是一个非常具体的特殊情况,其中bounds的origin可能不是{0,0}? 最佳答案 frame指定View相对于父View的位置,而bounds指定允许View相对于框架绘制的位置。通过更改bounds原点和/或宽度,您可以获得裁剪,例如,或在View外部绘制。也就是说,边界原点通常是(0,0),但它不能总是这样,就像您进行裁剪时一样。此外,仿射变换使用boun

objective-c - 自定义 UIView 和 becomeFirstResponder

我有一个自定义的UIView,它实现了UIKeyInput协议(protocol)并且有-(BOOL)canBecomeFirstResponder{returnYES;}在子类中定义。调用时:[customViewbecomeFirstResponder];NSLog(@"isfirst?%i",[customViewisFirstResponder]);在单击按钮期间,它返回false,即使canBecomeFirstResponder已正确设置并且所有UIKeyInput协议(protocol)功能均已实现。还有什么其他因素可以阻止这种观点成为第一响应者?如果有帮助,它位于scr

iphone - UIView 调整大小和平移动画不能正确地为 subview 设置动画

我正在使用UIView动画来调整和转换包含多个subview的View。父View的动画完美发生;但是,subview表现出奇怪的行为。当动画开始时,subview会立即调整大小,然后移动到它们的最终位置。例如,如果动画的持续时间和延迟为五秒,一旦调用动画,subview就会移动到所需的动画结束值。五秒钟后,superView将调整大小并转换为所需的大小。我的动画代码是:[UIViewanimateWithDuration:0.5animations:^{if(UIDeviceOrientationIsLandscape(self.interfaceOrientation)){self

ios - 如何使用自动布局在代码中设置 UIView 之间的标准间距?

在界面生成器中,我可以通过“固定”获得与“标准”间距匹配的“垂直空间”:在视觉约束语言中,我可以用以下方法完成同样的事情:V:[top]-[bottom]如何在代码中的两个View之间添加标准间距?我正在寻找可能出现在UIViewController中的类似内容:NSLayoutConstraint*spacing=???[self.viewaddConstraintspacing]; 最佳答案 从iOS11.0(2017年发布)开始,有使用系统间距的方法:@interfaceNSLayoutXAxisAnchor(UIViewDy

ios - 弱 IBOutlet UIView 属性将变为 nil

我在nib文件中有两个UIView,我使用IBOutlet和weak关键字将它们设置为我的ViewController的属性。但是,当我第一次使用self.view1来指向Nib中的View时,它起作用了。但是当我稍后使用它时,这两个属性变成了nil。使用strong属性可以解决这个问题。但我总是对IBOutlet属性使用weak。为什么在这种情况下它变成了零? 最佳答案 您需要对nib文件中的顶级项目有一个strong引用。如果你的nib的顶层有两个View,那么你应该有对它们的strong引用,而不是weak。这些顶级View的

ios - 拍摄隐藏的 UIView 的快照

我正在尝试拍摄隐藏View的快照,但遇到了几个问题。如果我尝试快速取消隐藏它,拍摄快照,然后重新隐藏它,有时我会在屏幕上看到一个非常刺耳的快速闪烁。toCollectionViewCell.hidden=NO;UIView*toPlaceHolderSnapshot=[toCollectionViewCellresizableSnapshotViewFromRect:toCollectionViewCell.boundsafterScreenUpdates:YESwithCapInsets:UIEdgeInsetsZero];toCollectionViewCell.hidden=YE

ios - 从 Xib 加载的自定义 UIView

我创建了一个UIView的自定义子类和一个xib文件,并在自定义类中声明了IBOutlets和IBActions。@interfaceContactUsView:UIView@property(nonatomic,weak)IBOutletUIButton*displayCloseButton;-(IBAction)callButtonPressed:(id)sender;-(IBAction)emailButtonPressed:(id)sender;-(IBAction)displayCloseButtonPressed:(id)sender;@end在xib文件中,我拖入了一个U

iphone - 如何使用 xib 创建 UIView 子类?

我想共同创建UIView。并在所有ViewController中使用该View。如何使用xib创建UIView子类并在所有ViewController中使用?提前致谢。 最佳答案 你需要创建你的子类:File->New->File->CocoaTouch->ObjectiveC-class->SubclassofTargetClassType(你的案例是UIView)然后,您为其创建xib:File>New>UserInterface>View(为您的xib命名)现在开始在InterfaceBuilder上设计您的xib。您应该做的

ios - 具有最小高度要求的Autolayout UIView比例高度

我创建了一个标签栏底部View,其高度与主视图相关。然而,标签栏底部View高度在6+->59、6->53、5->45和4s->38。它按比例正常工作。但是如果我想要这个标签栏View的高度应该最小为46,最大它应该按比例工作。所以根据上面在不同设备上的高度,我想实现6+->59,6->53,5->46&in4s->46.那么在自动布局中有什么可能的解决方案来实现这一点。提前致谢。 最佳答案 高度约束要大于46,优先级为1000,然后设置顶部空间约束优先级为750。 关于ios-具有最小

iphone - 关于 UIView 的 sizeThatFits 的问题

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:iPhone—theinputparametertoUIView'ssizeThatFitsmethod具体来说,它的参数应该是什么?文档说它是接收器的当前大小,但View始终可以使用self.bounds.size,所以这没有意义。它应该是可用空间吗?换句话说,parent是否在问child,“假设有XxY点的可用空间,你想要多大?”。