什么是iOS中的文件所有者和第一响应者 - Xcode?
我找不到在Interface Builder中创建'square'约束的方法,意思是'width equals height'.我想可以通过编程方式添加这样的约束.我可以在IB做些什么吗?也许我只是看不到它?这似乎微不足道,但我找不到它.
我有以下代码集:
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface CustomView : UIView
@property (nonatomic) IBInspectable UIColor *borderColor;
@property (nonatomic) IBInspectable CGFloat borderWidth;
@property (nonatomic) IBInspectable CGFloat cornerRadius;
@end
Run Code Online (Sandbox Code Playgroud)
#import "CustomView.h"
@implementation CustomView
- (void)setBorderColor:(UIColor *)borderColor {
_borderColor = borderColor;
self.layer.borderColor = borderColor.CGColor;
}
- (void)setBorderWidth:(CGFloat)borderWidth {
_borderWidth = borderWidth;
self.layer.borderWidth = borderWidth;
}
- (void)setCornerRadius:(CGFloat)cornerRadius {
_cornerRadius = cornerRadius;
self.layer.cornerRadius = cornerRadius;
}
@end
Run Code Online (Sandbox Code Playgroud)
(对于Swift参考,Swift代码也出现了这个问题)
@IBDesignable
class CustomView : UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init(coder aDecoder: …Run Code Online (Sandbox Code Playgroud) 可能是一些简单的东西,但我无法理解为什么我无法在Interface Builder中的xib中调整UIView的大小.
我在xcode和大小检查器中创建了一个新的视图XIB,宽度和高度被禁用并变灰到320乘460.这很奇怪,因为我可以更改其他两个视图的大小(与另外两个标签栏相关联)项目).
我不确定这是否与此有关,但我最近将sdk更新为3.
谢谢!
我想要做的是在Xcode的界面构建器中将组件/视图从一个超级视图拖动到另一个超级视图,而不必重置其帧/位置.
执行此操作时,Xcode的默认行为似乎是使视图在其新的超视图中垂直和水平移动,同时保留其尺寸.这非常令人沮丧,因为这意味着需要在新的superview中手动重新定位视图.但是在我移动它之前我已经正确定位了,所以我希望Xcode能够记住它的框架的所有属性,而不仅仅是它的宽度/高度.这可能吗?
在Interface Builder中,有布局选项发送到备份或发送到前方的任何元素,例如UIButton,UIImage,UILabel等...
现在,我想在运行时以编程方式执行相同的操作.
有一个简单的方法吗?
我不想创建不同的视图,只需更新z轴.
如何UIImageView在Xcode的集成界面构建器中调整对象的"z"位置(例如,向前/后发送s)?
我制作了一个 Pod Xcode 11 和 iOS 13,创建了一个 UIScrollview 并将我的内容设置在那里。
在较旧的主项目上安装时,此警报消息显示:
iOS 11.0 之前的内容和框架布局指南
我可以在 Interface Builder 中看到上述布局指南:
我怎样才能删除它们?
我正在为iOS开发一个应用程序,我正在使用带有AutoLayout ON的Storyboard.我的一个视图控制器有一组4个按钮,在某些情况下我想让第一个按钮消失.
如果我使用该setHidden:TRUE方法,UIButton变得不可见,但它仍然显然在视图中占用空间,结果是一个"洞",我无法填充,使剩余的UIButton浮动到主视图的顶部.
在Android中,我会简单地使用View.GONE而不是View.INVISIBLE,但在iOS中我坚持这种行为,我不想相信唯一的解决方案是手动(是的,我的意思是以编程方式)将剩余的元素移动到顶部.
我以为我能够设置某种约束来使一切像Android一样自动,但我没有运气.
在我关闭Autolayout之前,有人能指出我正确的方向吗?
我正在使用IB,但我对程序化的东西也很满意.
更新:
将组件高度设置为0也没有用.
我试过这样的事情:
UIButton *b;
CGRect frameRect = b.frame;
frameRect.size.height = 0;
b.frame = frameRect;
Run Code Online (Sandbox Code Playgroud) 我曾经使用自动布局添加新约束来对超级视图/相对视图进行简单约束,如下所示(对于 loooong 时间):
但是,最近更新到最新的 xcode(11.3.3 或 11.3/11C29)后,我遇到了这个奇怪的问题:当我设置常量 = 0 时,它们总是以不需要的方式生成约束,如下所示:
似乎默认值在某种程度上是 20 并且让我的观点看起来如此错误(0 与 20 相比?)
如果我通过像这样编辑约束来解决这个问题:
然后它会再次更正(图像是在编辑约束之后,在编辑之前显示常量 = Standard)
我什至不知道如何描述这个问题,但是我如何解决这个新问题add new constraint以使用我的愿望点而不是标准/默认值?
更新:
它似乎只发生在约束超级视图时。不知道如何修复tho。
2020 年 4 月 1 日更新:
Xcode11.4 修复了这个问题。
ios ×6
xcode ×5
iphone ×4
autolayout ×3
cocoa-touch ×1
ibdesignable ×1
objective-c ×1
visibility ×1
xcode11 ×1
xcode11.3 ×1
z-axis ×1