【知識(shí)總結(jié)】loadView 方法的思考

問(wèn)題場(chǎng)景
1,實(shí)現(xiàn)標(biāo)簽頁(yè)
2扮授,子控制器使用UIViewController迷守,添加UITableView實(shí)現(xiàn)
3暖呕,UIViewController的view在顯示的時(shí)候添加到scrollerView中,調(diào)用viewDidLoad顯示處理
4场躯,tableView根據(jù)view設(shè)置布局(View的frame)谈为,View的frame是在容器中設(shè)置的(view添加到scrollerView布局)

問(wèn)題:
tableView的frame計(jì)算錯(cuò)誤

 在項(xiàng)目中實(shí)現(xiàn)下面界面功能是遇到的問(wèn)題:
      [圖片上傳中。踢关。伞鲫。(1)]

這個(gè)頁(yè)面的思路是使用一個(gè)viewController作為容器,在viewController中添加scrollerView签舞,作為子視圖的容器秕脓;
對(duì)于內(nèi)部顯示的每個(gè)小模塊,都是使用一個(gè)對(duì)應(yīng)的控制器進(jìn)行實(shí)現(xiàn)儒搭,然后將控制器的視圖(view)添加到容器的scrollerView中顯示
[圖片上傳中吠架。。搂鲫。(2)]

1傍药,首先,添加子控制器到父容器中

  • (void)setupChildVc{
    [self addChildController:CKAGMessageBoxMessageTypeTrends title:@"動(dòng)態(tài)"];
    [self addChildController:CKAGMessageBoxMessageTypeCourse title:@"課程"];
    [self addChildController:CKAGMessageBoxMessageTypeDemand title:@"需求"];
    [self addChildController:CKAGMessageBoxMessageTypeMoney title:@"錢包"];
    [self addChildController:CKAGMessageBoxMessageTypeSys title:@"系統(tǒng)"];}- (void)addChildController:(CKAGMessageBoxMessageType)type title:(NSString *)title { CKAGMessageBoxController *trendsBoxVc = [[CKAGMessageBoxController alloc] initWithMessageType:type]; trendsBoxVc.title = title; trendsBoxVc.delegate = self; [self addChildViewController:trendsBoxVc];
    }

2魂仍,在需要顯示界面的時(shí)候拐辽,將相應(yīng)子控制器的view添加到scrollerView中
a,這么做的好處是擦酌,界面不需要顯示的情況下薛训,不會(huì)調(diào)用viewDidLoad方法,不會(huì)提前加載頁(yè)面的內(nèi)容仑氛,提高性能

pragma mark - UIScrollViewDelegate- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{ // 當(dāng)前索引 NSInteger index = scrollView.contentOffset.x / scrollView.width; // 取出子控制器 CKAGMessageBoxController *vc = self.childViewControllers[index]; vc.view.x = scrollView.contentOffset.x; vc.view.y = 0; // 設(shè)置控制器view 的y值為0(默認(rèn)為20) vc.view.width = scrollView.width;

vc.view.height = scrollView.height; // 設(shè)置控制器view 的height值為整個(gè)屏幕的高度(默認(rèn)比屏幕少20)

[scrollView addSubview:vc.view];    [vc requsetNewData];

}

這里的實(shí)現(xiàn)是滾動(dòng)到那個(gè)頁(yè)面乙埃,就將哪個(gè)頁(yè)面的view添加到scrollerView上(view添加到scrollerView上之后,重復(fù)添加是沒(méi)有關(guān)系的)锯岖;這個(gè)時(shí)候如果view沒(méi)有添加過(guò)介袜,就會(huì)調(diào)用到相應(yīng)控制器的viewDidLoad方法

原因:
CKAGMessageBoxController *vc = self.childViewControllers[index];
1 vc.view.x = scrollView.contentOffset.x;
vc.view.y = 0; // 設(shè)置控制器view 的y值為0(默認(rèn)為20) vc.view.width = scrollView.width;
2 vc.view.height = scrollView.height; // 設(shè)置控制器view 的height值為整個(gè)屏幕的高度(默認(rèn)比屏幕少20)
[scrollView addSubview:vc.view];

代碼1的時(shí)候,控制器的view實(shí)例處理出吹,調(diào)用viewDidLoad方法遇伞;

  • (void)viewDidLoad {
    [super viewDidLoad];
    // 設(shè)置UITableView
    }
    接著,viewDidLoad方法會(huì)去實(shí)例控制器中tableView捶牢,并且設(shè)置tableVIew的frame鸠珠;而tableView的frame是根據(jù)self.view的frame設(shè)置的

在代碼1到代碼2才完成了View的frame設(shè)置巍耗,因此設(shè)置tableViewframe的時(shí)候view的frame為zero,因此tableView的frame就不是準(zhǔn)確的了

活用loadView方法:
翻看之前的項(xiàng)目渐排,之所以之前的項(xiàng)目沒(méi)有出現(xiàn)問(wèn)題炬太,是因?yàn)橛玫氖荱ITableViewController,而UITableViewController的view就是tableView驯耻,因此tableVIew的frame也就不存在出錯(cuò)的問(wèn)題亲族。

      和同事討論loadVIw方法的時(shí)候,想到loadVIew方法就是用來(lái)實(shí)例self.view的可缚,那么上面的情況霎迫,我們將使用到的tableView在loadView方法中實(shí)現(xiàn),并且成為self.view不就相當(dāng)于自己實(shí)現(xiàn)了UITableViewController嗎帘靡?不知道這樣是否會(huì)出現(xiàn)問(wèn)題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末知给,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子描姚,更是在濱河造成了極大的恐慌炼鞠,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轰胁,死亡現(xiàn)場(chǎng)離奇詭異谒主,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)赃阀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門霎肯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人榛斯,你說(shuō)我怎么就攤上這事观游。” “怎么了驮俗?”我有些...
    開(kāi)封第一講書人閱讀 157,720評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵懂缕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我王凑,道長(zhǎng)搪柑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,568評(píng)論 1 284
  • 正文 為了忘掉前任索烹,我火速辦了婚禮工碾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘百姓。我一直安慰自己渊额,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著旬迹,像睡著了一般火惊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奔垦,一...
    開(kāi)封第一講書人閱讀 49,879評(píng)論 1 290
  • 那天屹耐,我揣著相機(jī)與錄音,去河邊找鬼宴倍。 笑死张症,一個(gè)胖子當(dāng)著我的面吹牛仓技,可吹牛的內(nèi)容都是我干的鸵贬。 我是一名探鬼主播,決...
    沈念sama閱讀 39,028評(píng)論 3 409
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼脖捻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼阔逼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起地沮,我...
    開(kāi)封第一講書人閱讀 37,773評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嗜浮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后摩疑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體危融,經(jīng)...
    沈念sama閱讀 44,220評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評(píng)論 2 327
  • 正文 我和宋清朗相戀三年雷袋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吉殃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,697評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡楷怒,死狀恐怖蛋勺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸠删,我是刑警寧澤抱完,帶...
    沈念sama閱讀 34,360評(píng)論 4 332
  • 正文 年R本政府宣布,位于F島的核電站刃泡,受9級(jí)特大地震影響巧娱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烘贴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評(píng)論 3 315
  • 文/蒙蒙 一家卖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庙楚,春花似錦上荡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,782評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)叁征。三九已至,卻和暖如春逛薇,著一層夾襖步出監(jiān)牢的瞬間捺疼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,010評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工永罚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啤呼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,433評(píng)論 2 360
  • 正文 我出身青樓呢袱,卻偏偏與公主長(zhǎng)得像官扣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羞福,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • *7月8日上午 N:Block :跟一個(gè)函數(shù)塊差不多惕蹄,會(huì)對(duì)里面所有的內(nèi)容的引用計(jì)數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,477評(píng)論 1 14
  • 廢話不多說(shuō)治专,直接上干貨 ---------------------------------------------...
    小小趙紙農(nóng)閱讀 3,343評(píng)論 0 15
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,640評(píng)論 1 9
  • 今天誦經(jīng)回向時(shí)忽然意識(shí)到卖陵,我所回向的不都是我所執(zhí)著的嗎,都是我啊张峰,無(wú)論什么形象泪蔫,什么狀態(tài),統(tǒng)統(tǒng)是存在于另一個(gè)身體的...
    388e4b7fd81c閱讀 279評(píng)論 0 0
  • 今天是5.25心理健康日喘批,這個(gè)日子對(duì)于每個(gè)學(xué)習(xí)心理的人都不陌生撩荣。從大一入學(xué)后,這個(gè)日子每年都會(huì)被強(qiáng)調(diào)谤祖、都有各...
    我是狐貍一只閱讀 335評(píng)論 0 1