iOS Tips

tableView reloadData 程序延遲到reloadData結束在操作。

1. 通過layoutIfNeeded方法,強制重繪并等待完成。
[self.tableView reloadData];  
[self.tableView layoutIfNeeded];  
//刷新完成,執行后續需要執行的代碼


2.reloadData方法會在主線程執行,通過GCD,使后續操作排隊在reloadData后面執行。
[self.tableView reloadData];  
dispatch_async(dispatch_get_main_queue(), ^{  
    //刷新完成,執行后續代碼
});

事件沖突

#import "DKTouchTableView.h"
#import "DKSuspendMapView.h"

@implementation DKTouchTableView


- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    
    CGPoint p = [gestureRecognizer locationInView:self.suspendMap.mapView];
    BOOL pointInMapView = [self.suspendMap.mapView pointInside:p withEvent:nil];
    self.scrollEnabled = !pointInMapView;

    return YES;
}  

手勢共存

[singleTapGestureRecognizer requireGestureRecognizerToFail:doubleTapGestureRecognizer];

事件穿透

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {


    return [super hitTest:point withEvent:event];
}

runtime強制執行

    SEL editSelector = self.editButtonItem.action;
    IMP editImp = [self methodForSelector:editSelector];
    void (*editFunc)(id, SEL) = (void *)editImp;
    editFunc(self, editSelector);

多個Button點擊

[UIButton appearance].isExclusiveTouch = YES;

基類

self.navigationController.navigationBar.translucent = NO;
self.automaticallyAdjustsScrollViewInsets = NO;

cell進入編輯模式

-(void)didTransitionToState:(UITableViewCellStateMask)state

通過Clang將mian.m文件編譯為C++

clang -rewrite-objc main.m

還是字符串靠譜

9AB5E23E-026F-47F1-88A3-E18601ED2613.png

使用Xib自定義view的深坑!!!!!

絕對不可以 LBWealthCenterViewController 里面 有一個 LBWealthCenterView的自定義xibView

子視圖不響應父視圖的手勢識別器

/** 讓子視圖不響應父視圖的手勢識別器 */
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    if (touch.view == self) {
        return YES;
    }
    if ([touch.view isDescendantOfView:self]) {
        return NO;
    }
    return YES;
}

忽略編譯器警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability"

#pragma clang diagnostic pop

build setting => other waring flags
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。