启动Xcode,选择"Create a new Xcode project",然后选择空应用程序模板,点击Next。命名为 CustomCells,然后照下图那样设置。
点击Next,选择项目的存放路径,最后点击Create。
这里需要添加两个文件,UITableViewController以及custom cell对应的xib文件。
Choose File | New >File ,然后添加一个名为 TableViewController 的UITableViewController。
如图:
对于这个controller,我们并不需要xib文件,所以直接点击Next创建。
重新创建文件,这次我们是创建一个空的 xib 文件,如下图:
点击Next,确保Device Family被设置为iPad,再点击Next,在默认路径下保存为 CellNib 文件。
接着打开 CellNib.xib 文件。在上面拖放几个 label:
这里第一个Label的字体大小是27,字体是System Italic。而其他的Label全部都是默认设置。
下一步就是为文本依然是"Label"的Label设置tag。
将第一个大字体的Label设置tag=1,然后设置Address1,Address2,Phone,Cell右边的Label的tag分别为2,3,4,5。
接着需要修改xib的File's Owner的所属类。这里选择为 TableViewController。
打开 TableViewController.h 然后添加这些属性:
#import <uikit uikit.h=""><span class="referer">@interface</span> TableViewController : UITableViewController
@property (nonatomic, strong) NSArray *cellContent
@property (nonatomic, strong) IBOutlet UITableViewCell *customCell<span class="referer">@end</span></uikit>
这个演示中,我们定义一个数组来记录所有cell的内容,还需要如下图那样,设置设置好 customCell的outlet。
现在打开TableViewController.m做出如下更改:
#import "TableViewController.h"<span class="referer">@interface</span> TableViewController ()<span class="referer">@end</span>
@implementation TableViewController
@synthesize cellContent, customCell
- (NSArray *)cellContent
{
cellContent = [[NSArray alloc] initWithObjects:
[NSArray arrayWithObjects:@"Alex Ander",
@"213 4th St.", @"Apt. 17", @"555-555-5555", @"111-111-1111", nil],
[NSArray arrayWithObjects:@"Jane Doe",
@"4 Any Ave.", @"Suite 2", @"123-456-7890", @"098-765-4321", nil],
[NSArray arrayWithObjects:@"Bill Smith",
@"63 Smith Dr.", @"", @"678-765-1236", @"987-234-4987", nil],
[NSArray arrayWithObjects:@"Mike Taylor",
@"3145 Happy Ct.", @"", @"654-321-9871", @"654-385-1594", nil],
[NSArray arrayWithObjects:@"Nancy Young",
@"98 W. 98th St.", @"Apt. 3", @"951-753-9871", @"951-654-3557", nil],
nil]
return cellContent
}
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style]
if (self) {
// Custom initialization
}
return self
}
- (void)viewDidLoad
{
[super viewDidLoad]
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
}
- (void)viewDidUnload
{
[super viewDidUnload]
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES
}
#pragma mark – Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [[self.cellContent objectAtIndex:0] count]
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 149.0f
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:.75 alpha:1]
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell"
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"CellNib" owner:self options:nil]
cell = self.customCell
self.customCell = nil
}
UIDateicker并没有继承UIPickerView,它的宽度只有iphone的宽度,在ipad上直接显示出来非常不协调,所以苹果建议用UIPopoverViewController来显示,所以你可以在里面任意定制。在iphone中显示需要手动配制动画,因为它只是一个视图。所以你有下面几种方式显示出一个UIDatePicker.
使用UIView动画块从底部慢慢滑动上来
嵌入到UIAlert或者UIActionSheet中
将UIDateicker视图做为可输入控件的定制键盘,inputView.
最后我的变态方案将两个UIDatePicker一起d出,形成一个时间区域选择
1 NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"am_ET"] autorelease]
2
3
4 UIDatePicker *datePicker1 = [[[IoriDatePicker alloc] initWithFrame:CGRectMake(-80, 0, 0, 0)] autorelease]
5 UIDatePicker *datePicker2 = [[[UIDatePicker alloc] initWithFrame:CGRectMake(-80, 0, 0, 0)] autorelease]
6 CGRect frame = datePicker1.frame
7 frame.origin.y = -frame.size.height*0.1/2l
8 datePicker1.frame = frame
9 datePicker2.frame = frame
10 datePicker1.transform = CGAffineTransformMakeScale (0.9, 0.9)
11 datePicker2.transform = CGAffineTransformMakeScale (0.9, 0.9)
12
13 NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Antarctica/Vostok"]
14 NSCalendar *calendar = [NSCalendar currentCalendar]
15 calendar.locale = locale
16 calendar.timeZone = timeZone
17 datePicker1.calendar = calendar
18
19 UIView *datePickerContaner = [[[UIView alloc] initWithFrame:CGRectMake(0, 30, 320, datePicker1.frame.size.height)] autorelease]
20 UIView *datePickerView1 = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, datePickerContaner.frame.size.height)] autorelease]
21 UIView *datePickerView2 = [[[UIView alloc] initWithFrame:CGRectMake(160, 0, 160, datePickerContaner.frame.size.height)] autorelease]
22 datePickerView1.clipsToBounds = YES
23 datePickerView1.autoresizesSubviews = YES
24 datePickerView2.clipsToBounds = YES
25 datePickerView2.autoresizesSubviews = YES
26 datePickerView1.layer.borderWidth = 1
27 datePickerView1.layer.cornerRadius = 8
28 datePickerView2.layer.borderWidth = 1
29 datePickerView2.layer.cornerRadius = 8
30 [datePickerContaner addSubview:datePickerView1]
31 [datePickerContaner addSubview:datePickerView2]
32
33
34 datePicker1.datePickerMode = UIDatePickerModeTime
35 [datePickerView1 addSubview:datePicker1]
36
37
38 datePicker2.datePickerMode = UIDatePickerModeTime
39 [datePickerView2 addSubview:datePicker2]
你好,1、创建工程项目,新建一个UIViewController;
2、选中工程,右键-New File…选择“Cocoa Touch Class”-Next,给个合理的名称ViewController,再Next完成;
3、在AppDelegate.m文件包含#import "ViewController.h";
4、初始化创建ViewController的视图控制器,并用导航栏控制器包含。将之设置为根视图控制器。
创建UIDatePicker及添加代理
1、在ViewController.h创建UIPickerView。
2、在ViewController.m初始化self.pickerView;
3、将self.pickerView添加至视图;
4、为self.pickerView添加监听事件(条件:UIControlEventValueChanged值被改变时执行调用);
5、实现监听事件方法。
至此,已经完成了一般创建、初始化、调用这些基本方法。
UIDatePicker设置显示格式
1、设置中文显示需要获取当前区域化设置NSLocale;
2、创建并初始化NSLocale,initWithLocaleIdentifier为@"zh_CN";
3、将self.datePicker.locale属性set为NSLocale的值;
4、设置12/24小时制是根据手机本身时间显示。
设置UIDatePicker起始时间和最远时间
1、时间的选择范围限制使用的计算方法:格里高利历;
2、创建并初始化NSCalendar,initWithCalendarIdentifier为NSGregorianCalendar;
3、创建并初始化NSDateComponents作为时间偏差;
4、设置时间偏差offsetComponents;
5、利用格里高利历方法计算偏差后的日期时间;
6、设置self.datePicker的minimumDate属性为当前时间,maximumDate属性为偏差后的时间。
将选择的UIDatePicker时间按格式打印输出
1、在ViewController.h创建显示日期时间的UILabel;
2、在ViewController.m初始化UILabel并添加到视图中;
3、在响应事件方法中添加日期时间转换为NSString格式代码;
4、打印转换结果并显示到UILabel中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)