uiviewcontroller  在通过storyboard初始化时本身就不会执行initWithFrame .它会执行initWithNib, initWithCoder, awakFromNib 等方法,而继承自UIView的控件在初始时会调用 initWithFrame方法。

解决方案 »

  1.   

    本来就不执行initwithframe的,你可以把代码放在viewdidload和viewwillappele里面
      

  2.   

    可能我没问清楚,我在storyboard中拖了个tabbar,手工建了个uiviewcontroller类与之关联。又新建了一个uiview类与uiviewcontroller下的view关联。但是我在uiview的ininwithframe中初始化的代码一直没执行。难道我还要在uiviewcontroller中实例一个此uiview类吗?
      

  3.   


    你说拖一个tabbar, 是指的tabbarcontroller 吧, 如果是tabbarcontroller的话,它的class就不能指向uiviewcontroller 了,应该指向UITabbarController类与之建立关联。
    如果通过storyboard或xib来加载页面元素的话,它不会调用自定义view的initWithFrame方法。如果需要初始化一些设置的话,你可以重写initWithCoder 方法。在使用storyboard或xib时,这个方法会被调用。如果是用代码来实例这个view的话,你可以调用initWithFrame方法来实例。
      

  4.   


    你说拖一个tabbar, 是指的tabbarcontroller 吧, 如果是tabbarcontroller的话,它的class就不能指向uiviewcontroller 了,应该指向UITabbarController类与之建立关联。
    如果通过storyboard或xib来加载页面元素的话,它不会调用自定义view的initWithFrame方法。如果需要初始化一些设置的话,你可以重写initWithCoder 方法。在使用storyboard或xib时,这个方法会被调用。如果是用代码来实例这个view的话,你可以调用initWithFrame方法来实例。
    那我重写一下initWithCoder 看看。有没有相关storyboard的加载原理,一直比较晕;
      

  5.   


    你说拖一个tabbar, 是指的tabbarcontroller 吧, 如果是tabbarcontroller的话,它的class就不能指向uiviewcontroller 了,应该指向UITabbarController类与之建立关联。
    如果通过storyboard或xib来加载页面元素的话,它不会调用自定义view的initWithFrame方法。如果需要初始化一些设置的话,你可以重写initWithCoder 方法。在使用storyboard或xib时,这个方法会被调用。如果是用代码来实例这个view的话,你可以调用initWithFrame方法来实例。
    有没有ios开发的好书推荐一下。不嫌多。
      

  6.   


    你说拖一个tabbar, 是指的tabbarcontroller 吧, 如果是tabbarcontroller的话,它的class就不能指向uiviewcontroller 了,应该指向UITabbarController类与之建立关联。
    如果通过storyboard或xib来加载页面元素的话,它不会调用自定义view的initWithFrame方法。如果需要初始化一些设置的话,你可以重写initWithCoder 方法。在使用storyboard或xib时,这个方法会被调用。如果是用代码来实例这个view的话,你可以调用initWithFrame方法来实例。
    有没有ios开发的好书推荐一下。不嫌多。
    <<iOS 程序设计>> 推荐这本。