tips

UIView動畫

使用[UIView animateWithDuration:...]執行動畫改變view期間不宜重新加載view中的數據,尤其是有滑動操作的時候。(比如UITableView、UICollectionView等,最好在動畫執行之前重載數據。)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    //最好在這裏執行reloadData
    [self.tableView reloadData];
    [UIView animateWithDuration:0.4 animations:^{
        self.tableView.contentOffset = CGPointZero;
        self.tableView.frame = CGRectMake(0, 100, 414, 500);
    }];

    //在這裏執行reloadData容易crash
    [self.tableView reloadData];
}

設置擋住導航欄的半透明背景

UIWindow *currentWindow = [UIApplication sharedApplication].keyWindow;
[currentWindow addSubview:backgroundView];

內存泄漏有兩種:第一是真正的內存泄漏,一個對象尚未被釋放,但是已經不在被引用了;第二類泄漏比較麻煩些,就是所謂的“無界內存增長“,就是內存還在繼續分配,但是永遠沒有機會釋放。如果一直這樣下去,你的程序佔用內存將會無限大,最終被系統的看門狗給kill掉。

//第一次調用此方法時不會從複用池取已有cell,而是新建cell並且新加一個複用ID;
//[self.tableView reloadData]是從複用池取出
[self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:0]]
                      withRowAnimation:UITableViewRowAnimationFade];
發佈了29 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章