Ios 更改方向后如何更改选择器视图的位置

Ios 更改方向后如何更改选择器视图的位置,ios,objective-c,layout,Ios,Objective C,Layout,我的应用程序中有两个带选择器视图的按钮。在纵向模式下,这些按钮放置在左侧,当我更改设备的方向以横向时,按钮将移到屏幕的右侧,但选择器视图仅保留在左侧。我需要选择器改变它的位置并移到右边 你知道怎么做吗?你必须取消选中.xib中实用工具->文件检查器中的“自动布局”选项 为你的pickerView创建一个对象。为其设置@property和@synthexe。在你的.xib中建立连接!然后在viewDidLoad()中编写以下代码 如果要添加多个自动调整大小掩码,请使用|运算符 pickerView

我的应用程序中有两个带选择器视图的按钮。在纵向模式下,这些按钮放置在左侧,当我更改设备的方向以横向时,按钮将移到屏幕的右侧,但选择器视图仅保留在左侧。我需要选择器改变它的位置并移到右边


你知道怎么做吗?

你必须取消选中.xib中实用工具->文件检查器中的“自动布局”选项

为你的pickerView创建一个对象。为其设置@property和@synthexe。在你的.xib中建立连接!然后在viewDidLoad()中编写以下代码

如果要添加多个自动调整大小掩码,请使用|运算符

pickerViewObject.autoresizingMask= UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin;

我已经在我的代码中做了以下更改,我得到了所需的结果

-(void) didReceivedRotaionChanged
{
    if([popoverController isPopoverVisible])
    {
        if ([popoverController.contentViewController isKindOfClass:[UINavigationController class]])
        {
            UINavigationController * navController = (UINavigationController*)popoverController.contentViewController;
            NSArray *array = navController.viewControllers;
            if ([array count] > 0)
            {
                if([[array objectAtIndex:0] isEqual:self.nsJobRolePickerViewController])
               {
                    [popoverController dismissPopoverAnimated:NO];
                    [self onClickIJobRoleButton:self.btnJobRole];

                }
                else if([[array objectAtIndex:0] isEqual:self.nsLocationPickerViewController])
                {
                    [popoverController dismissPopoverAnimated:NO];
                    [self onClickILocationButton:self.btnLocation];

                }
            .
            .
            ......
等等


嗯,有点长。。。但是它会帮助像我这样的初学者。

“自动布局”未选中,但仍然无法提供正确的输出。您还可以通过.xib设置自动调整大小掩码!首先取消选中autoLayout选项,然后转到utilities-->inspector,在那里您可以设置自动调整大小掩码!或者,您可以禁用.xib中的所有自动调整大小掩码,然后通过如上所示的代码执行此操作!
-(void) didReceivedRotaionChanged
{
    if([popoverController isPopoverVisible])
    {
        if ([popoverController.contentViewController isKindOfClass:[UINavigationController class]])
        {
            UINavigationController * navController = (UINavigationController*)popoverController.contentViewController;
            NSArray *array = navController.viewControllers;
            if ([array count] > 0)
            {
                if([[array objectAtIndex:0] isEqual:self.nsJobRolePickerViewController])
               {
                    [popoverController dismissPopoverAnimated:NO];
                    [self onClickIJobRoleButton:self.btnJobRole];

                }
                else if([[array objectAtIndex:0] isEqual:self.nsLocationPickerViewController])
                {
                    [popoverController dismissPopoverAnimated:NO];
                    [self onClickILocationButton:self.btnLocation];

                }
            .
            .
            ......