uidatepicker怎么加到tableviewcell

uidatepicker怎么加到tableviewcell,第1张

UITableViewCell类能够显示出各种各样的风格,但有时候我们需要适应不同的显示模式下的显示。今天的文章中,我们将使用table view去显示一系列自定义的cell。

启动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中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11559767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存