藍懿ios微博項目之自訂cell

來源:互聯網
上載者:User

標籤:

/重寫轉寄微博View的get方法  懶載入,實現了轉寄微博view複用

// 懶載入就是在程式運行後,不是一下子載入很多的控制項,而是後期需要的時候再複用

// 懶載入的形式是重寫get方法的同時,裡面進行判斷跟著 if(obj==nil),這種形式

//  這裡的轉寄的微博view也要考慮view的複用問題

-(LYWeiboView *)reWeiboView{

    

    

    // if裡面判斷進行的時候要寫成_reWeiboView,如果寫self.reWeiboView,它屬於_eWeiboView的get方法,get方法裡面用屬性的get方法取值判斷會進入死迴圈,所以這裡重寫get方法時候一定要用_reWeiboView來判斷是否存在

    // 注意:_reWeiboView == nil , 整體是一個get方法,

    //  self.reWeiboView = ,屬於set方法;

    if (_reWeiboView == nil) {

        // 現建立一個,滴哦用的時候賦值時再定Fram

        _reWeiboView = [[LYWeiboView alloc]initWithFrame:CGRectZero];

        [self addSubview:_reWeiboView];

        self.reWeiboView.backgroundColor = LYGrayColor;

    }

    

    return _reWeiboView;

}

 

// ---------------------- 功能分區 -----------------------------

//    [LYSinaUtils requestWeibosWithParams:params Callback:^(id obj) {

//        // 請求回來的資料是一個大數組

//        self.weibos = obj;

//        // 此block是LYSinaUtils調用的方法,block裡用其他對象調方法不會報錯警告,如果此block方法是用tableView調用的,就會報錯,報錯的時候就在block方法外邊用“__block”修飾一下

//        [tableView reloadData];

//    }];

    

    // ---------------------- 功能分區 -----------------------------

    

    /*

     //  等號右邊的永遠是fet方法,下面的self.params屬於調用get方法,self.params.count屬於set方法,一個等號左邊最近的屬性調用的是set方法

     [email protected](3);

     

     */

    //    __block typeof(self) weakSelf = self;

    //    __block LYHomeViewController *weakSelf = self;

    // *** __block這裡就記住,當block裡要是訪問屬性,可能會出現報錯,直接記住在外邊加上__block修飾一下就好了

    //添加上拉載入和下拉重新整理  在block中訪問變數時 會導致記憶體計數+1 從而可能會引起 對象釋放不掉

    //    __weak 和 __block 都可以使變數在block中使用時 記憶體計數不加1

    //添加下拉重新整理事件

    [tableView addPullToRefreshWithActionHandler:^{

        

        //重新整理的時候如果有資料,判斷當前有沒有微博資料。

        if (self.weibos.count>0) {

//            找到微博資料數組裡的第一個[0]的就是最新的使用者發的微博id

            LYWeibo *weibo = self.weibos[0];

            //擷取比自己最新微博 更新微博

            self.params.since_id = weibo.wid;

        }

        [LYSinaUtils requestWeibosWithParams:self.params Callback:^(id obj) {

// 下面添加的時候系統不知道obj是什麼,提前用數組接住

            NSArray *newWeibos = obj;

            //把請求到的新的資料插入到數組的最前面

            [self.weibos insertObjects:obj atIndexes:[NSIndexSetindexSetWithIndexesInRange:NSMakeRange(0, newWeibos.count)]];

            [self.tableView reloadData];

            

            //結束下拉重新整理動畫

            [self.tableView.pullToRefreshView stopAnimating];

            

        }];

        

    }];

    

    //添加上拉載入事件

    [tableView addInfiniteScrollingWithActionHandler:^{

        //如果是上拉載入 不能設定since_id不然拿不到資料

        // 如設定了since_idyou參數,系統就會去請求最新的資料,而不是載入之前的資料

        

        self.params.since_id = nil;

        //佈建要求頁數

        self.params.page = @(self.params.page.intValue+1);

        

        //上拉載入

        [LYSinaUtils requestWeibosWithParams:self.params Callback:^(id obj) {

            //把擷取到的微博數組追加到資料來源數組中

            [self.weibos addObjectsFromArray:obj];

            [self.tableView reloadData];

            //結束上拉載入動畫

            [self.tableView.infiniteScrollingView stopAnimating];

        }];

        

    }];

 

    //觸發下拉重新整理

    [self.tableView triggerPullToRefresh];

 

藍懿ios微博項目之自訂cell

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.