Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Iphone showInView正在导致剪辑_Iphone_Objective C_Ios_Xcode_Uiview - Fatal编程技术网

Iphone showInView正在导致剪辑

Iphone showInView正在导致剪辑,iphone,objective-c,ios,xcode,uiview,Iphone,Objective C,Ios,Xcode,Uiview,因此,我遵循了一个教程,该教程讲述了当用户点击UITextField时,如何使用UIDatePicker而不是键盘。我遇到的问题是,当选取器出现时,它被剪裁,并在控制台中发出以下消息: Presenting action sheet clipped by its superview. Some controls might not respond to touches. On iPhone try -[UIActionSheet showFromTabBar:] or -[UIActionShe

因此,我遵循了一个教程,该教程讲述了当用户点击UITextField时,如何使用UIDatePicker而不是键盘。我遇到的问题是,当选取器出现时,它被剪裁,并在控制台中发出以下消息:

Presenting action sheet clipped by its superview. Some controls might not respond to touches. On iPhone try -[UIActionSheet showFromTabBar:] or -[UIActionSheet showFromToolbar:] instead of -[UIActionSheet showInView:].
我尝试了其他的方法,但它们也不起作用,我也没料到它们会起作用。如果有人能看看下面的代码并提供一些建议,那就太好了。谢谢:)

AddShiftViewController.h

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "Shift.h"

@interface AddShiftsViewController : UIViewController <UITextFieldDelegate>

@property (weak, nonatomic) IBOutlet UITextField *jobTitleField;
@property (weak, nonatomic) IBOutlet UITextField *startDateField;
@property (weak, nonatomic) IBOutlet UITextField *endDateField;

@property (nonatomic, strong) NSDate *startDate;
@property (nonatomic, strong) NSDate *endDate;

@property (nonatomic, strong) UIActionSheet *dateSheet;

- (void)setDate;
- (void)dismissPicker;
- (void)cancelPicker;

- (IBAction)addShift:(id)sender;

@end
h(自定义类)

但它仍然是剪辑。我附上了一张照片,让你知道到底发生了什么


首先,您确定帧宽和帧高是否正确

CGRect pickerFrame = CGRectMake(0, 44, 0, 0); // (params) x , y, width, height
使用此框架的选择器视图的宽度和高度分别为0和0,因此无法正确显示。尝试创建具有一定宽度或高度的UIDatePicker

另外,您是否正在尝试从作为UITabBarController一部分的控制器中显示UIActionSheet??? 如果是,那么

[datesheet showInView:self.view];
使用


首先,您确定帧宽度和高度是否正确

CGRect pickerFrame = CGRectMake(0, 44, 0, 0); // (params) x , y, width, height
使用此框架的选择器视图的宽度和高度分别为0和0,因此无法正确显示。尝试创建具有一定宽度或高度的UIDatePicker

另外,您是否正在尝试从作为UITabBarController一部分的控制器中显示UIActionSheet??? 如果是,那么

[datesheet showInView:self.view];
使用


看起来你可能把这一行的数字弄错了:

[dateSheet setBounds:CGRectMake(0, 0, 420, 385)];
应该是:

[dateSheet setBounds:CGRectMake(0, 0, 320, 485)];

iPhone屏幕的宽度不是420像素:)经典的屏幕是320宽(纵向)或640宽的视网膜显示器。虽然在其他地方也可能有错误,但这一点在我看来很突出。

这一行的数字似乎有点不对劲:

[dateSheet setBounds:CGRectMake(0, 0, 420, 385)];
应该是:

[dateSheet setBounds:CGRectMake(0, 0, 320, 485)];

iPhone屏幕的宽度不是420像素:)经典的屏幕是320宽(纵向)或640宽的视网膜显示器。虽然在其他地方也可能有错误,但这一个对我来说很突出。

这些是教程中使用的值,它们工作正常,所以我认为不是这样。我试着将它们分别设置为320和300,但没有任何改变。我附上了一个屏幕截图,显示发生了什么。我尝试使用showFromTabBar链接它,但没有成功:(这些是在教程中使用的值,它们工作得很好,所以我认为不是这样。我尝试将它们分别设置为320和300,但没有改变任何事情。我附加了一个屏幕截图,显示发生了什么。我尝试将其链接到showFromTabBar,但没有成功:(是的,就是这样:)谢谢你。是的,就是这样:)谢谢你。