iOS视图创建初始化的一些工厂方法
来源:互联网 发布:英文翻译软件 编辑:程序博客网 时间:2024/05/18 03:01
头文件
// 提供一些UI控件的工厂方法,实现一些通用的控件初始化工作#import <UIKit/UIKit.h>@interface UIView (UIFactory)// Label+ (id)createLabel;+ (id)createLabel:(CGRect)frame;// TextField+ (id)createTextFiled;+ (id)createTextFiled:(UITextBorderStyle)style;+ (id)createTextFiled:(CGRect)frame style:(UITextBorderStyle)style;// Button+ (id)createButton:(CGRect)frame;+ (id)createButton:(CGRect)frame type:(UIButtonType)type;+ (id)createButton:(CGRect)frame target:(id)target action:(SEL)action;+ (id)createButton:(CGRect)frame target:(id)target action:(SEL)action buttonType:(UIButtonType)type;// TableView+ (id)createTableView:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate;+ (id)createTableView:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate style:(UITableViewStyle)style;+ (id)createTableView:(CGRect)frame dataSource:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate;+ (id)createTableView:(CGRect)frame dataSource:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate style:(UITableViewStyle)style;// TextView @end
实现文件
#import "UIView+UIFactory.h"#ifndef Demo_Macros_h#define Demo_Macros_h #ifdef __IPHONE_6_0 #define kTextAlignmentLeft NSTextAlignmentLeft #define kTextAlignmentCenter NSTextAlignmentCenter #define kTextAlignmentRight NSTextAlignmentRight #define kLineBreakModeCharaterWrap NSLineBreakByCharWrapping #define kLineBreakModeWordWrap NSLineBreakByWordWrapping #define kLineBreakModeClip NSLineBreakByClipping #define kLineBreakModeTruncatingHead NSLineBreakByTruncatingHead #define kLineBreakModeTruncatingMiddle NSLineBreakByTruncatingMiddle #define kLineBreakModeTruncatingTail NSLineBreakByTruncatingTail #else #define kTextAlignmentLeft UITextAlignmentLeft #define kTextAlignmentCenter UITextAlignmentCenter #define kTextAlignmentRight UITextAlignmentRight #define kLineBreakModeCharaterWrap UILineBreakModeCharacterWrap #define kLineBreakModeWordWrap UILineBreakModeWordWrap #define kLineBreakModeClip UILineBreakModeClip #define kLineBreakModeTruncatingHead UILineBreakModeHeadTruncation #define kLineBreakModeTruncatingMiddle UILineBreakModeMiddleTruncation #define kLineBreakModeTruncatingTail UILineBreakModeTailTruncation #endif #define kMainScreenFrame [[UIScreen mainScreen] bounds] #define kMainScreenWidth kMainScreenFrame.size.width #define kMainScreenHeight kMainScreenFrame.size.height-20 #define kApplicationFrame [[UIScreen mainScreen] applicationFrame]#endif@implementation UIView (UIFactory)#pragma mark Label+ (id)createLabel{ return [UIView createLabel:CGRectZero];}+ (id)createLabel:(CGRect)frame{ UILabel *label = [[UILabel alloc] initWithFrame:frame]; label.backgroundColor = [UIColor clearColor]; label.textAlignment = kTextAlignmentCenter;#if __has_feature(objc_arc) return label;#else return [label autorelease];#endif }#pragma mark TextField+ (id)createTextFiled{ return [UIView createTextFiled:UITextBorderStyleRoundedRect];}+ (id)createTextFiled:(UITextBorderStyle)style{ return [UIView createTextFiled:CGRectZero style:style];}+ (id)createTextFiled:(CGRect)frame style:(UITextBorderStyle)style{ UITextField *textField = [[UITextField alloc] initWithFrame:frame]; textField.textAlignment = kTextAlignmentCenter; textField.textColor = [UIColor blackColor]; textField.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; textField.borderStyle = style; #if __has_feature(objc_arc) return textField;#else return [textField autorelease];#endif }#pragma mark Button+ (id)createButton:(CGRect)frame{ return [UIView createButton:frame type:UIButtonTypeRoundedRect];}+ (id)createButton:(CGRect)frame type:(UIButtonType)type{ UIButton *btn = [UIButton buttonWithType:type]; btn.frame = frame; return btn;}+ (id)createButton:(CGRect)frame target:(id)target action:(SEL)action{ return [UIView createButton:frame target:target action:action buttonType:UIButtonTypeRoundedRect];}+ (id)createButton:(CGRect)frame target:(id)target action:(SEL)action buttonType:(UIButtonType)type{ UIButton *btn = [UIButton buttonWithType:type]; btn.frame = frame; [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; return btn;}#pragma mark TableView+ (id)createTableView:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate{ return [UIView createTableView:CGRectZero dataSource:dataSource delegete:delegate style:UITableViewStyleGrouped];}+ (id)createTableView:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate style:(UITableViewStyle)style{ return [UIView createTableView:CGRectZero dataSource:dataSource delegete:delegate style:style];}+ (id)createTableView:(CGRect)frame dataSource:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate{ return [UIView createTableView:frame dataSource:dataSource delegete:delegate style:UITableViewStyleGrouped];}+ (id)createTableView:(CGRect)frame dataSource:(id<UITableViewDataSource>)dataSource delegete:(id<UITableViewDelegate>)delegate style:(UITableViewStyle)style{ UITableView *tableView = [[UITableView alloc] initWithFrame:frame style:style]; tableView.delegate = delegate; tableView.dataSource = dataSource; #if __has_feature(objc_arc) return tableView;#else return [tableView autorelease];#endif }#pragma mark TextView+ (id)createTextView:(CGRect)frame{ UITextView *tv = [[UITextView alloc] initWithFrame:frame]; #if __has_feature(objc_arc) return tv;#else return [tv autorelease];#endif}@end
0 0
- iOS视图创建初始化的一些工厂方法
- ios创建视图的一些方法封装
- iOS 导航控制器、标签、表视图的创建方法
- ios--视图控制器的创建
- IOS 自定义视图的创建
- ORACLE视图的创建方法
- IOS菜鸟的所感所思(九)——收藏视图的创建并对cell的初始化
- iOS 视图的复制方法
- 快速创建IOS里的所有视图
- IOS模态视图的创建
- iOS 获取storyboard创建的视图控制器
- IOS模态视图的创建
- iOS中视图的创建顺序
- IOS学习 UIViewController 视图控制器的创建
- 【读书笔记】iOS-自定义视图的创建
- iOS视图控制器初始化问题
- iOS创建头部视图
- ios-表视图创建
- 保持学习状态——2013总结(工作、职场)
- JavaWeb B/S架构中实现客户端浏览器打印(使用scriptX)
- SQLite多线程读写实践及常见问题总结
- linux编程学习笔记(八) 文件 定位 lseek pread pwrite
- Effective Objc : Object-C 中 @property 详解
- iOS视图创建初始化的一些工厂方法
- Google Guice 入门教程08 - 整合第三方组件(2)
- 大数求和
- 用 Python + django 10分鐘內作出一個 blog
- 简单的希望
- ios--把数据存储到沙盒中
- 由kernel延伸开来的
- curl模拟登入
- 图片来回滚动