第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

UIView和initWithFrame以及一個(gè)NIB文件。如何獲取NIB文件?

UIView和initWithFrame以及一個(gè)NIB文件。如何獲取NIB文件?

iOS
千萬里不及你 2019-12-09 11:23:40
我有一個(gè)UIView電話baseView,在initWithFrame那兒我可以添加其他一些視圖并做一些自定義的事情。同一視圖還具有NIB文件?,F(xiàn)在我有一個(gè)UIViewController名為的類AppController,我想在其中添加baseView視圖到視圖的AppController視圖中,所以我這樣做:self.view = baseView;但是問題是NIB文件沒有被加載。如何確定自定義內(nèi)容和NIB文件已加載/運(yùn)行?
查看完整描述

3 回答

?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

您有很多選擇,具體取決于將如何使用“ baseView”類并將其集成到應(yīng)用程序中。目前尚不清楚您打算如何使用該類-作為UIViewController子類中的視圖,還是可重復(fù)使用的模塊化組件,意味著在整個(gè)應(yīng)用程序中實(shí)例化多次,以用于許多不同的視圖控制器。


如果您的視圖是UIViewController子類中的唯一視圖,那么Phonitive是正確的-將其與UIViewController子類.xib文件捆綁在一起,并使用UIViewController的viewDidLoad進(jìn)行最終初始化。


但是,如果您希望View類成為在不同的View Controller中多次重用的子組件,可以通過代碼集成,也可以通過包含在其他控制器的.xib文件中進(jìn)行集成,那么您需要同時(shí)實(shí)現(xiàn)initWithFrame:init方法和awakeFromNib,處理這兩種情況。如果內(nèi)部初始化總是包含來自.xib的某些對(duì)象,那么在initWithFrame中,您將需要手動(dòng)加載.xib,以支持要通過代碼創(chuàng)建窗口小部件的“客戶”類。同樣,如果.xib文件包含您的對(duì)象,則需要確保從awakeFromNib調(diào)用任何代碼所需的終結(jié)處理。


這是一個(gè)如何使用筆尖中的UI設(shè)計(jì)創(chuàng)建UIView子類組件的示例。


MyView.h:


@interface MyView : UIView

{

    UIView *view;

    UILabel *l;

}

@property (nonatomic, retain) IBOutlet UIView *view;

@property (nonatomic, retain) IBOutlet UILabel *l;

MyView.m:


#import "MyView.h"

@implementation MyView

@synthesize l, view;


- (id)initWithFrame:(CGRect)frame 

{

    self = [super initWithFrame:frame];

    if (self) 

    {

        // Initialization code.

        //

        [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];

        [self addSubview:self.view];

    }

    return self;

}


- (void) awakeFromNib

{

    [super awakeFromNib];


    // commenters report the next line causes infinite recursion, so removing it

    // [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];

    [self addSubview:self.view];

}


- (void) dealloc

{

     [l release];

     [view release];

     [super dealloc];

}

nib文件的外觀如下所示(除了文件所有者必須更改為MyView類)。


確保將視圖出口和標(biāo)簽出口都連接到文件所有者。而已!用于創(chuàng)建可重復(fù)使用的UIView小部件的模板。


關(guān)于此結(jié)構(gòu)的真正好處是,您可以將MyView對(duì)象的實(shí)例放置在其他nib文件中,只需將UIView放置在所需的位置/大小,然后將身份檢查器(CMD-4)中的類更改為MyView,繁榮發(fā)展,無論您想要什么視圖,都可以看到小部件的實(shí)例!就像UIKit對(duì)象一樣,您可以實(shí)現(xiàn)委托協(xié)議,以便可以將使用小部件的對(duì)象通知有趣的事件,并可以提供要顯示在小部件中的數(shù)據(jù)以對(duì)其進(jìn)行自定義。


查看完整回答
反對(duì) 回復(fù) 2019-12-09
?
交互式愛情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果您具有帶有xib文件的自定義UIView。


- (id)initWithFrame:(CGRect)frame

{

   self = [super initWithFrame:frame];


   id mainView;

   if (self)

   {

       NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"HomeAllAdsView" owner:self options:nil];

       mainView = [subviewArray objectAtIndex:0];    

   }

   return mainView;

}


- (void) awakeFromNib

{

   [super awakeFromNib];

}


查看完整回答
反對(duì) 回復(fù) 2019-12-09
  • 3 回答
  • 0 關(guān)注
  • 529 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)