标签: nib

支持多种方向的最简单方法?当应用程序在Landscape中时如何加载自定义NIB?

我有一个应用程序,我想支持多个方向.我有两个.xib文件,我想使用myViewController.xib myViewControllerLandscape.xib. myViewController.xib并存在于project/Resources中,myViewControllerLandscape.xib并存在于根项目目录中.

我想要做的是使用单独的NIB (myViewControllerLandscape.xib)进行轮换.我尝试在viewDidLoad like中检测旋转:

if((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight))
 {
  NSLog(@"Landscape detected!");
  [self initWithNibName:@"myViewControllerLandscape" bundle:nil];

 }
Run Code Online (Sandbox Code Playgroud)

但我可以在gdb中看到,当应用程序以横向设备启动时,不会执行此操作.NSLog消息不会触发.为什么是这样?我做错了什么?

此外,如果我initWithNibNameviewDidLoad方法中明确地放置了函数调用,则不会加载该nib,并继续使用myViewController.xib文件.我的电话有什么问题?我应该指定捆绑吗?

谢谢!

iphone xib uiviewcontroller nib iphone-sdk-3.0

35
推荐指数
3
解决办法
3万
查看次数

无法在新的Interface Builder中放大和缩小nib

在Xcode 4的集成界面生成器中,我是否遗漏了一些显而易见的内容,或者无法在开放的nib文件中自由缩放?

xcode zoom interface-builder nib xcode4

35
推荐指数
3
解决办法
2万
查看次数

viewDidLoad中的帧大小错误

可能重复:
为什么我必须在viewDidLoad中手动设置视图的框架?

我有iphone和ipad的通用应用程序,两个故事板,如果我在iphone模拟器上运行我的应用程序viewDidLoad在nib中的每个元素的每个帧是正确的.但是,如果我为ipad(模拟器)在框架中做它为零,但屏幕看起来正确.你能告诉我什么吗?谢谢.

storyboard nib ipad ios ios-simulator

33
推荐指数
2
解决办法
3万
查看次数

"第一响应者" - 我做对了吗?

让我简要总结一下:nib文件中的"First Responder"是一个对象,它表示具有用户焦点的UI控件元素.因此,如果用户单击控件,则nib将单击的UI控件设置为First Responder.在我的应用程序中,我可以从笔尖找到"First Responder"的出口,这样我就可以通过点击向用户激活的任何内容发送消息"make red font color".

然后,如果此第一响应者UI控件不理解该消息,则消息将在响应者链中传递,直到父元素或祖父母(等等)UI控件元素理解该消息.否则它将被忽略.

因此,First Responder始终建立具有焦点的UI控件的"链接".是对的吗?

cocoa objective-c nib first-responder

31
推荐指数
1
解决办法
2万
查看次数

从nib加载自定义UIView,nib中包含的所有子视图都是nil?

我有一个自定义UIView对象,nib用于定义视图/子视图布局.我的插座是连接的,当我从initWithFrame:一切启动对象时,它是有序的.

我遇到的问题是当我使用IB将其UIView嵌入另一个笔尖时; 自定义UIView出现,但它包含的子视图都没有出现 - 实际上它们的符号都解析为nil.我有一个非常小的initWithCoder:awakeFromNib:实现(只是做记录),我的理解是,当笔尖反序列化的子视图至少应该在过程中初始化?

我自己得出的唯一结论就是两件事之一正在发生:我的插座引用是坏的/坏的并且不起作用,或者我对从笔尖加载过程的理解是错误的我是遗漏了什么.

提前致谢!

编辑:(根据要求为Nekto发布的代码......正如您将看到的,它会记录并且就是这样,嘿.)

- (id)initWithCoder:(NSCoder *)aDecoder {
    if ((self = [super initWithCoder:aDecoder])) {
        NSLog(@"ThumbnailGridView.initWithCoder frame= %f, %f", self.frame.size.width, self.frame.size.height);
    }
    return self;
}

- (void)awakeFromNib
{
    NSLog(@"ThumbnailGridView:awakeFromNib");
}
Run Code Online (Sandbox Code Playgroud)

编辑2:笔尖,控制器,子视图等

Nibs:我有一个包含UIView的笔尖.这个UIView包含一个UIScrollView,它充满了另一个nib中定义的UIViews网格.(注意:这部分工作正常,因为填充是以编程方式完成的,并且与initWithFrame:call一起工作.)这里的问题是在initWithCoder之后UIScrollView符号是nil:并且awakeFromNib:都被调用,因此对象只是被添加到没有,没有任何反应.如果scrollview符号不是nil,我相信这会有效.

控制器:有两个控制器使用它,一个用initWithFrame完成:并且工作完美,另一个将它嵌入基于nib的引用.(如此处其他地方所述,在IB中定义UIView,设置自定义类.)我逐步完成了代码,并且该视图正在被正确初始化 - 只有它的子视图"缺失".

这有助于更清楚地了解情况吗?

iphone interface-builder uiview nib ios

31
推荐指数
2
解决办法
4万
查看次数

检查.nib或.xib文件是否存在

在尝试使用initWithNibName:bundle:或类似地加载Nib或Xib文件之前,检查Nib或Xib文件是否存在的最佳方法是什么?

iphone xcode objective-c nib

28
推荐指数
1
解决办法
9467
查看次数

使用XCode故事板实例化使用XIB进行设计的视图控制器

我有一个我之前创建的UIViewController子类,它的控件布局在XIB文件中.

我现在想在故事板中使用这个视图控制器,但看起来虽然我可以在故事板中指出视图控制器的类名,但我无法告诉它加载XIB.

我宁愿不将所有内容从XIB移动到故事板,而是将其保存在单独的XIB中.

如何在故事板中获取此UIViewController以加载我的XIB?

xcode storyboard xib nib

28
推荐指数
1
解决办法
1万
查看次数

从NIB创建UIView

我创建了一个子类UIView的自定义类.我想在IB中做我的布局,所以设置了出口.问题是如何初始化我的视图以便从NIB获取它?任何帮助将不胜感激.

uiview nib ios

27
推荐指数
1
解决办法
1万
查看次数

使用Interface Builder在没有故事板的情况下在nib中设计UICollectionView单元格

我正在尝试设计一个自定义UICollectionViewCell原型(在Xcode 5.0.2中),但是Interface Builder UICollectionView在设计一个笔尖时不允许我添加一个单元格.我可以设置项目(单元格)和Interface Builder创建的数量,如果我使用的是故事板,则可以完美地显示单元格,但是我无法在笔尖中将单元格添加到我的集合视图中.我试过了:

  • 将集合视图单元格从对象库手动拖放到集合视图中.(失败:不允许我将单元格放在我视图中的任何位置)
  • 使用storyboard中的单元格创建我的集合视图,并将整个视图复制粘贴到nib中.(失败:复制集合视图但单元格已消失)
  • 使用storyboard中的单元格创建我的集合视图,打开storyboard作为源代码,查找我的集合视图单元格,复制相关的XML,打开我的nib作为源代码,将其粘贴到XML集合视图中.(失败:无法打开在Interface Builder笔尖,它给了错误,当我删除源代码中的细胞,它再次打开不要.试试这个,如果你不知道自己在做什么.)

我也看到了几个关于同一问题的问题:

他们都指出以编程方式和/或使用另一个笔尖进行细胞处理.我知道怎么做,但有没有办法设计集合视图单元格,在一个nib中同一视图内的集合视图中,就像在故事板中一样?为什么Interface Builder不允许我在nib中执行它,它允许(甚至鼓励)完美地使用storyboard?

xcode interface-builder nib uicollectionview uicollectionviewcell

27
推荐指数
1
解决办法
1万
查看次数

从xib加载自定义视图后,IBOutlet属性为零

IBOutlets发生了一些奇怪的事情. 在此输入图像描述

在代码中我尝试访问这些属性,但它们是nil.码:

class CustomKeyboard: UIView {

    @IBOutlet var aButt: UIButton!
    @IBOutlet var oButt: UIButton!

    class func keyboard() -> UIView {
        let nib = UINib(nibName: "CustomKeyboard", bundle: nil)
        return nib.instantiateWithOwner(self, options: nil).first as UIView
    }

    override init() {
        super.init()
        commonInit()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        commonInit()
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commonInit()
    }

    // MARK: - Private
    private func commonInit() {
        println(aButt)
        // aButt is nil

        aButt = self.viewWithTag(1) as UIButton
        println(aButt)
        // aButt …
Run Code Online (Sandbox Code Playgroud)

uiview nib ios swift

26
推荐指数
2
解决办法
2万
查看次数