我有一些问题要确定何时在视图设置过程中应用auto-contraintsa XIB上的设置.
有关更多说明:
XIB一个视图IBOutlet)执行某些操作frames/boundsviewDidLoadIBOutlet)frames/bounds在awakeFromNib方法在这两个方法(ViewController::viewDidLoad and View::awakeFromNib)中,IBOutlet视图已加载但尚未应用约束.当使用更大的模拟器(例如iPhone 6模拟器)时,实际帧仍然设置为iPhone 3.5"大小(宽度320)".
何时应用这些自动约束以及何时需要执行需要子视图的ACTUAL框架/边界的必要操作?
我正在使用XCode 6.3,Swift(1.2)
我在xcode 4.5中创建了一个新项目,并且我已经调用了我的viewcontroller
- (ID)initWithNibName:束:
来自appdelegate,因为它在默认项目模板中调用,我没有使用故事板,但没有调用awakeFromNib我也搜索但无法理解为什么awakeFromNib 没有调用.
通过Apple文档-(void)awakeFromNib
"从Interface Builder归档或nib文件加载后准备接收器以获得服务"." NSCoding使用它们的initWithCoder:方法初始化符合协议的对象(包括UIView和UIViewController的所有子类).所有不符合NSCoding协议的对象都使用它们的init方法初始化.在所有对象都被实例化和初始化之后, nib加载代码重新建立所有这些对象的出口和动作连接.然后它调用对象的awakeFromNib方法."
我的问题是为什么awakeFromNib在加载xib文件时没有调用?我做错了吗?请详细说明
我有两个笔尖:Parent.xib和Child.xib.
我已将Parent nib包含在Parent nib中以简化绑定.我在loadView中以编程方式设置子视图.问题是,awakeFromNib在Child的控制器中被调用了两次.
我想我明白为什么会这样.当Parent完成加载时,它会向其对象发送一个awakeFromNib,并且由于Child是其nib的文件所有者,因此它也会调用awakeFromNib.
我明白了吗?我最初的印象是每个实例只能调用一次awakeFromNib.我不应该在笔尖中嵌入笔尖吗?
我看到了这段代码:
CoolButton *coolButton = [[CoolButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 60.0f, 25.0f)];
[coolButton awakeFromNib];
// ...
[coolButton release];
Run Code Online (Sandbox Code Playgroud)
CoolButton子类UIButton.可以通过awakeFromNib编程方式调用吗?
如果我想要以-[CoolButton awakeFromNib]编程方式创建对象而不是从nib文件创建相同的事情,那么最好的方法是什么?
我应该定义一个方法,并调用它-[CoolButton awakeFromNib]和-[CoolButton initWithFrame]?或者,是否有另一种我应该定义的初始化方法,在两种情况下都会被调用:无论是以CoolButton编程方式还是从nib文件创建?
awakefromnib ×4
ios ×3
iphone ×2
nib ×2
builder ×1
cocoa ×1
constraints ×1
embed ×1
interface ×1
objective-c ×1
swift ×1
uikit ×1