Custom-->TableView_Swizzle

#import "UITableView+Swizzle.h"

#import <UIKit/UIKit.h>

#import <objc/objc.h>

#import <objc/runtime.h>

@implementation UITableView (Swizzle)

实现:一次性设置tableView的位置

+ (void)load

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

[self swizzleInstanceMethod:@selector(initWithFrame:style:) withNewMethod:@selector(yq_initWithFrame:style:)];// 在这里替换

});

}

- (instancetype)yq_initWithFrame:(CGRect)frame style:(UITableViewStyle)style

{

UITableView *tableView = [self yq_initWithFrame:frame style:style];

[tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

return tableView;

}

/**

*  替换实例方法(对象方法)

*

*  @param originalSel 原方法SEL

*  @param newSel      新方法SEL

*/

+ (BOOL)swizzleInstanceMethod:(SEL)originalSel withNewMethod:(SEL)newSel

{

Method originalMethod = class_getInstanceMethod(self, originalSel);

Method newMethod = class_getInstanceMethod(self, newSel);

if (!originalMethod || !newMethod) return NO;

class_addMethod(self, originalSel,  class_getMethodImplementation(self, originalSel), method_getTypeEncoding(originalMethod));

class_addMethod(self, newSel, class_getMethodImplementation(self, newSel),  method_getTypeEncoding(newMethod));

method_exchangeImplementations(class_getInstanceMethod(self, originalSel), class_getInstanceMethod(self, newSel));

return YES;

}

TableViewCell_Swizzle

#import "UITableViewCell+Swizzle.h"

@implementation UITableViewCell (Swizzle)

+ (void)load

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

[self swizzleClassMethod:@selector(initWithStyle:reuseIdentifier:) withNewMethod:@selector(yq_initWithStyle:reuseIdentifier:)];

});

}

- (instancetype)yq_initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

UITableViewCell *cell = [self yq_initWithStyle:style reuseIdentifier:reuseIdentifier];

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

return cell;

}

@end

时间: 2024-11-11 11:29:52

Custom-->TableView_Swizzle的相关文章

自定义元素(custom elements)

记录下自定义html自定义元素的相关心得: 浏览器将自定义元素保留在 DOM 之中,但不会任何语义.除此之外,自定义元素与标准元素都一致 事实上,浏览器提供了一个HTMLUnknownElement,HTMLElement对象,所有自定义元素都是该对象的实例. var tabs=document.createElement("tabs"); console.log(tabs instanceof HTMLUnknownElement);//true console.log(tabs i

SharePoint 2010/SharePoint 2013 Custom Action: 基于Site Collection 滚动文字的通知.

应用场景: 有时候我们的站点需要在每个页面实现滚动文字的通知,怎么在不修改Master Page的情况下实现这个功能?我们可以使用Javascript 和 Custom Action 来实现. 创建一个Custom Action.主要使用到 Location = 'ScriptLink' 属性, 该属性可以动态的加载JavaScript 文件链接和代码块到模板页.代码如下: <Elements xmlns="http://schemas.microsoft.com/sharepoint/&

redmine computed custom field formula tips

项目中要用到Computed custom field插件,公式不知道怎么写,查了些资料,记录在这里. 1.http://apidock.com/ruby/Time/strftime 查看ruby的字符串格式,用于改写Date/time format只显示日期,不显示时间. 2.https://github.com/annikoff/redmine_plugin_computed_custom_field/issues/34 看到formula里可以写复杂代码,比如增加变量.指定返回值等. 3.

Spring Custom Bean with BeanPostProcessor

Spring Custom Bean 1.BeanPostProcessors 这个接口是在spring容器初始化完bean之后 才会被调用,这个接口针对是一个容器,不能夸容器操作的,这个只能在初始化bean之后再改变一些自己的内容,如果想改变bean的结构,需要另外的一个接口:BeanFactoryPostProcessor

Cookies and Custom Protocols

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/URLLoadingSystem/CookiesandCustomProtocols/CookiesandCustomProtocols.html#//apple_ref/doc/uid/10000165i-CH10-SW3 If your app needs to manage cookies programmatically, such as

Angular2 - Starter - Pipes, Custom Pipes

在Angular2 模板中,我们在显示数据时,可以使用通道将数据转换成相应的格式的值的形式来显示,而且这不改变源数据.比如,我们可以使用date通道来转换时间显示的格式: {{date | date:'yyyy-MM-dd'}} ,(1) 以下是Angular提供的基本的通道. Basic Pipes Pipe Name Usage Parameters or Effection currency {{test.currency | currency }} 1234569678 > USD1,2

Unity Editor Extensions – Custom Inspectors

?? 转载请注明出处:http://blog.csdn.net/u010019717 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/space-uid-18602.html 这是在"Unity Editor Extension"系列的第 2 次帖子. post描述了为创建自定义inspectors面板在 Unity 编辑器的基本步骤.在该系列的下一个posts,我将深入探讨更高级的主题,例如inspectors及Unity's serializa

Writing a Reusable Custom Control in WPF

In my previous post, I have already defined how you can inherit from an existing control and define your own reusable chunk. The reusable XAML code that I have defined there is actually a composition of one of more existing elements in a common desig

[webgrid] &ndash; header - (How to Add custom html to Header in WebGrid)

How to Add custom html to Header in WebGrid MyEvernote Link Posted on March 30, 2013by mtryambake How to make a MVC 3 Webgrid with checkbox column?This article will show you a How to Add custom html to Header in WebGrid e.g. add a check box in webgri

DLL程序组件Microsoft Reporting Services Barcode Custom Report Item

Microsoft Reporting Services Barcode Custom Report Item(CRI)是一个易于安装和使用的DLL程序组件,其作为一个集成的组件用于在Microsoft Reporting Services报表中创建条形码,而不需要使用条形码字体.提供的所有的Designer和Render DLLs都是用C#语言编写的100%托管代码,且具有数字签名和带有时间戳的Verisign软件认证码证书 具体功能: 用一个Custom Report Item(CRI)添加