Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么[UITableView外观]会弄乱UIDatePicker?_Ios_Objective C_Cocoa Touch_Uitableview_Uidatepicker - Fatal编程技术网

Ios 为什么[UITableView外观]会弄乱UIDatePicker?

Ios 为什么[UITableView外观]会弄乱UIDatePicker?,ios,objective-c,cocoa-touch,uitableview,uidatepicker,Ios,Objective C,Cocoa Touch,Uitableview,Uidatepicker,当将UIDatepicker作为UIExtField子类的inputView呈现时,我遇到了一个奇怪的问题。 发生的情况是,出现了选择器,但第二列被某些内容截断,导致月份名称在第三个或第四个字符处被截断。下面是这个问题的一个例子: 整个问题是在应用程序开始时产生的,同时设置一些样式,特别是UITableView样式。负责此行为的代码行如下所示: [[UITableView appearance] setBackgroundColor:[self greyPayAppColor]]; greyP

当将UIDatepicker作为UIExtField子类的inputView呈现时,我遇到了一个奇怪的问题。 发生的情况是,出现了选择器,但第二列被某些内容截断,导致月份名称在第三个或第四个字符处被截断。下面是这个问题的一个例子:

整个问题是在应用程序开始时产生的,同时设置一些样式,特别是UITableView样式。负责此行为的代码行如下所示:

[[UITableView appearance] setBackgroundColor:[self greyPayAppColor]];
greyPayAppColor只是其他地方定义的自定义灰色。事实上,这正是涵盖月份名称的屏幕截图中显示的颜色。 现在,我真的很困惑,因为我不知道UITableView外观消息如何会搞乱UIDatePicker。另一件事是,这个问题只发生在UIDatePicker用作文本字段的inputView时,而不是在IB生成的常规字段上

出于复制目的,这里是我正在使用的UITexField子类。它生成两个视图,一个UIDatePicker和一个UIToolbar,将它们设置为文本字段inputView和inputAccessoryView。当按下“完成”和“取消”按钮时,它还使用委派进行通信

.h文件:

#import <UIKit/UIKit.h>

@protocol DatePickerTextFieldDelegate <NSObject>

@optional
- (void)didDismissDatePickerWithDate:(NSDate *)date; // If date == nil => cancel was pressed
@end

@interface DatePickerTextField : UITextField
@property (nonatomic, weak) id<DatePickerTextFieldDelegate> datePickerDelegate;
@property (nonatomic, strong) NSDate *date;


@end

我一直不明白为什么会发生这种情况,但考虑到它不包含tableView,我设法通过覆盖该特定VC中的外观调用来绕过它,如下所示:

// override appearence
[[UITableView appearanceWhenContainedIn:[self.superview class], nil] setBackgroundColor:[UIColor clearColor]];
我仍然想理解UITableView和UIDatepicker之间的这种关系。如果有人知道,请留下评论

谢谢

// override appearence
[[UITableView appearanceWhenContainedIn:[self.superview class], nil] setBackgroundColor:[UIColor clearColor]];