首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏iOS开发随笔

    iOS UITableView 让cell分割线(Separator)从左边0的位置开始

    willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if ([cell respondsToSelector selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } if ([cell respondsToSelector cell setSeparatorInset:UIEdgeInsetsZero]; } } - (void)viewDidLayoutSubviews { if ([_tableView respondsToSelector setSeparatorInset:)]) { [_tableView setSeparatorInset:UIEdgeInsetsZero]; } if ([_tableView respondsToSelector

    1.2K30发布于 2018-07-04
  • 来自专栏陈满iOS

    iOS·UITableView分割线颜色,隐藏,边距(宽度,起点)等设置

    cell = [tableView dequeueReusableCellWithIdentifier:kClientTableViewCellIdentifier]; if ([cell respondsToSelector tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ if ([cell respondsToSelector setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsMake(0, 25, 0, 0)]; } if ([cell respondsToSelector viewDidLayoutSubviews]; self.tableView.tableFooterView = [UIView new]; if ([self.tableView respondsToSelector [self.tableView setSeparatorInset:UIEdgeInsetsMake(0,15,0,0)]; } if ([self.tableView respondsToSelector

    7K50发布于 2018-10-11
  • 来自专栏hrscy

    iOS瀑布流

    @implementation YJWaterFlowLayout #pragma mark 代理方法处理 -(CGFloat)rowMargin { if ([self.delegate respondsToSelector else { return YJDefaultRowMargin; } } -(CGFloat)columnMargin { if ([self.delegate respondsToSelector else { return YJDefaultColumeMargin; } } -(NSInteger)columnCount { if ([self.delegate respondsToSelector { return YJDefaultColumeCount; } } -(UIEdgeInsets)edgeInsets { if ([self.delegate respondsToSelector = self.edgeInsets.top) { if ([self.delegate respondsToSelector:@selector(rowMarginInWaterFlowLayout

    2K40发布于 2018-08-30
  • 来自专栏日常技术分享

    iOS UITableView 无数据占位图

    UITableViewDataSource> src = self.dataSource; NSInteger sections = 1; // 获取sections if ([src respondsToSelector if (isEmpty) { // 默认ScrollView可以滚动 BOOL scrollEnabled = YES; if ([self respondsToSelector performSelector:@selector(enableScrollWhenPlaceHolderViewShowing)]; } else if ([self.delegate respondsToSelector [self.placeHolderView removeFromSuperview]; // 获取placeHolderView if ([self respondsToSelector = [self performSelector:@selector(makePlaceHolderView)]; } else if ( [self.delegate respondsToSelector

    1.7K20发布于 2019-01-28
  • 来自专栏日常技术分享

    iOS 给Tableview 没有数据的时候添加占位图

    UITableViewDataSource> src = self.dataSource; NSInteger sections = 1; // 获取sections if ([src respondsToSelector if (isEmpty) { // 模式ScrollView可以滚动 BOOL scrollEnabled = YES; if ([self respondsToSelector selector(enableScrollWhenPlaceHolderViewShowing)] boolValue]; } else if ([self.delegate respondsToSelector [self.placeHolderView removeFromSuperview]; // 获取placeHolderView if ([self respondsToSelector performSelector:@selector(makePlaceHolderView)]; } if ( [self.placeHolderDelegate respondsToSelector

    1K20发布于 2021-07-21
  • 来自专栏Helloted

    Runtime应用(二):捕获异常

    [self respondsToSelector:aSelector]) { _errorSelectorName = NSStringFromSelector(aSelector); ht_forwardInvocation:(NSInvocation *)anInvocation{ SEL selector = [anInvocation selector]; if ([self respondsToSelector [self respondsToSelector:aSelector]) { _errorSelectorName = NSStringFromSelector(aSelector); forwardInvocation:(NSInvocation *)anInvocation{ SEL selector = [anInvocation selector]; if ([self respondsToSelector

    90820编辑于 2022-06-07
  • 来自专栏HelloCode开发者学习平台

    iOS底层学习——KVC下篇

    clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" if ([self respondsToSelector getKey)]) { return [self performSelector:NSSelectorFromString(getKey)]; }else if ([self respondsToSelector :NSSelectorFromString(countOfKey)]){ if ([self respondsToSelector:NSSelectorFromString(objectInKeyAtIndex 相关方法** - (BOOL)lg_performSelectorWithMethodName:(NSString *)methodName value:(id)value{ if ([self respondsToSelector } return NO; } - (id)performSelectorWithMethodName:(NSString *)methodName{ if ([self respondsToSelector

    62130发布于 2021-08-25
  • 来自专栏雨尘分享

    AVFoundation 视频拍摄基础篇

    unlockForConfiguration]; }else { if ((self.delegate && [self.delegate respondsToSelector self.outputURL recordingDelegate:self]; }else{ if ((self.delegate && [self.delegate respondsToSelector { //创建AVCaptureDeviceInput 出现错误,则通知委托来处理该错误 if ((self.delegate && [self.delegate respondsToSelector device unlockForConfiguration]; }else { if ((self.delegate && [self.delegate respondsToSelector unlockForConfiguration]; }else { if(self.delegate && [self.delegate respondsToSelector

    1.4K20发布于 2021-02-05
  • 来自专栏iOS逆向与安全

    iOS右滑返回的实现(interactivePopGestureRecognizer)

    [super viewDidLoad]; //设置右滑返回手势的代理为自身 __weak typeof(self) weakself = self; if ([self respondsToSelector if (canPopViewController) { if ([self.qmui_interactivePopGestureRecognizerDelegate respondsToSelector originGestureDelegate = self.qmui_interactivePopGestureRecognizerDelegate; if ([originGestureDelegate respondsToSelector return self.viewControllers.count > 1 && self.interactivePopGestureRecognizer.enabled && [viewController respondsToSelector /设置左边按钮 UIBarButtonItem *backItem =nil; if ([viewController respondsToSelector

    3.8K20发布于 2021-07-29
  • 来自专栏技术总结

    iOS优化_你可能没注意到的delegate

    kfc didReceiveData:(NSData *)data,那就很正常,一旦不实现该方法,又传了值过去,程序就会崩掉,所以我们应该加个判断

    if ([_delegate respondsToSelector }
    有了上面的判断,即使delegate对象没有实现委托协议的方法,也不会造成程序奔溃 但是,如果委托协议方法很多,那么很有可能类中会出现大量的respondsToSelector setDelegate:(id<BugKFCDelegate>)delegate { _delegate = delegate; _BugKFCState.BugKFCStateOK = [_delegate respondsToSelector 属性时,用weak修饰,不可用strong,以免造成”保留环“; 2、遇到optional的委托协议方法时,一定要用检测是否委托对象调用的该个协议方法,检测方法为respondsToSelector ; 3、如果协议方法多次调用,那么最好优化下,此文用结构体缓存状态,不用每次调用respondsToSelector方法,极大提高程序执行效率

    61850发布于 2018-05-22
  • 来自专栏iOS逆向与安全

    iOS右滑返回的实现【修订】

    [super viewDidLoad]; //设置右滑返回手势的代理为自身 __weak typeof(self) weakself = self; if ([self respondsToSelector if (canPopViewController) { if ([self.qmui_interactivePopGestureRecognizerDelegate respondsToSelector originGestureDelegate = self.qmui_interactivePopGestureRecognizerDelegate; if ([originGestureDelegate respondsToSelector return self.viewControllers.count > 1 && self.interactivePopGestureRecognizer.enabled && [viewController respondsToSelector /设置左边按钮 UIBarButtonItem *backItem =nil; if ([viewController respondsToSelector

    2.1K20发布于 2021-08-25
  • 来自专栏浮躁的喧嚣

    协议与分类--23:代理

    import "User.h" @interface APP : NSObject<UserDelegate> @property (nonatomic,strong) User *user; @end 用respondsToSelector 判断代理对象是否实现了相关协议方法,如果没有实现,就不执行任何操作 if (user.delegate && [user.delegate respondsToSelector:@selector(doSomething

    23010编辑于 2023-11-22
  • 来自专栏雨尘分享

    TCP 看我就够了

    defaultCenter] postNotificationName:@"didConnectToHost" object:nil userInfo:nil]; if ([itcpClient respondsToSelector (err) { DLog(@"连接失败"); dispatch_async(dispatch_get_main_queue(), ^{ if ([itcpClient respondsToSelector recivedArray addObject:httpResponse]; dispatch_async(dispatch_get_main_queue(), ^{ if ([itcpClient respondsToSelector defaultCenter] postNotificationName:@"didConnectToHost" object:nil userInfo:nil]; if ([itcpClient respondsToSelector (err) { DLog(@"连接失败"); dispatch_async(dispatch_get_main_queue(), ^{ if ([itcpClient respondsToSelector

    1.7K50发布于 2018-06-07
  • 来自专栏正则

    AFNetworking源码探究(三) —— GET请求实现之任务进度设置和通知监听

    weakTask) strongTask = weakTask; [strongTask suspend]; }]; if ([self.uploadProgress respondsToSelector weakTask) strongTask = weakTask; [strongTask suspend]; }]; if ([self.downloadProgress respondsToSelector (c) 开始 主要就是对应下面这段代码 if ([self.uploadProgress respondsToSelector:@selector(setResumingHandler:)]) { typeof__(weakTask) strongTask = weakTask; [strongTask suspend]; }]; if ([self.downloadProgress respondsToSelector (c) 开始 主要对应下面这几句代码 if ([self.downloadProgress respondsToSelector:@selector(setResumingHandler:)]) {

    66040发布于 2021-09-02
  • 来自专栏移动端周边技术扩展

    iOS 11 editActionsForRowAtIndexPath

    completionHandler)(BOOL)) { [self selectBtnClicked:cell]; if ([self.delegate respondsToSelector completionHandler)(BOOL)) { [self selectBtnClicked:cell]; if ([self.delegate respondsToSelector

    1K60发布于 2018-06-14
  • 来自专栏iOSer

    iOS踩坑之多代理模式使用注意

    github.com/JyyJDast1/MultiDelegateOC 原理 打断点得知:在用多代理对象对delegate赋值时,会触发库中AIMultiDelegate.m文件中- (BOOL)respondsToSelector :(SEL)selector方法,如果此时,multiDelegate对象的delegates数组中的所有代理对象还不全(还未包含你想添加的代理对象),那么未被添加的代理对象特有的实现的代理方法会被respondsToSelector

    95420发布于 2020-09-04
  • 来自专栏前端黑板报

    iOS WebView 的 Hybrid 框架设计

    = [change[NSKeyValueChangeNewKey] doubleValue]; if (_progressDelegate && [_progressDelegate respondsToSelector *)request navigationType:(NSInteger)navigationType { BOOL result = YES; if ([self.delegate respondsToSelector float)progress { self.estimatedProgress = progress; if (_progressDelegate && [_progressDelegate respondsToSelector strongSelf = weakSelf; if (strongSelf.jsBridge.delegate && [strongSelf.jsBridge.delegate respondsToSelector strongSelf = weakSelf; if (strongSelf.jsBridge.delegate && [strongSelf.jsBridge.delegate respondsToSelector

    2K10发布于 2018-12-24
  • 来自专栏正则

    AFNetworking源码探究(二十三) —— UIKit相关之UIWebView+AFNetworking分类(六)

    textEncodingName baseURL:[dataTask.currentRequest URL]]; if ([strongSelf.delegate respondsToSelector downloadProgressForTask:dataTask]; } [self.af_URLSessionTask resume]; if ([self.delegate respondsToSelector textEncodingName baseURL:[dataTask.currentRequest URL]]; if ([strongSelf.delegate respondsToSelector textEncodingName:textEncodingName baseURL:[dataTask.currentRequest URL]]; if ([strongSelf.delegate respondsToSelector self.sessionManager downloadProgressForTask:dataTask]; } [self.af_URLSessionTask resume]; if ([self.delegate respondsToSelector

    66820发布于 2021-09-03
  • 来自专栏浮躁的喧嚣

    iOS中SEL类型

    之后再用到的时候就直接使用 SEL类型的作用 配合对象、类来检查对象、类中有没有实现一个方法 注: 如果通过对象调用该方法则判断对象方法的实现 如果通过类调用该方法则判断有没有类方法的实现 BOOL flag = [p respondsToSelector :test]; BOOL flag = [Person respondsToSelector:test]; 配合对象或者类来调用某一个SEL方法 //无参数 SEL sel = @selector(demo

    26610编辑于 2023-11-22
  • 来自专栏iOS逆向与安全

    iOS小技能:右滑返回

    [super viewDidLoad]; //设置右滑返回手势的代理为自身 __weak typeof(self) weakself = self; if ([self respondsToSelector if (canPopViewController) { if ([self.qmui_interactivePopGestureRecognizerDelegate respondsToSelector originGestureDelegate = self.qmui_interactivePopGestureRecognizerDelegate; if ([originGestureDelegate respondsToSelector return self.viewControllers.count > 1 && self.interactivePopGestureRecognizer.enabled && [viewController respondsToSelector /设置左边按钮 UIBarButtonItem *backItem =nil; if ([viewController respondsToSelector

    2.8K30编辑于 2022-08-22
领券