UIWebView:强制横向(锁定)和aspectfit到窗口

时间:2014-06-13 19:02:22

标签: ios iphone objective-c uiviewcontroller uiwebview

全部,我在ViewController中有一个UIWebView。控制器被适当地连接起来并且从前面的tableview中正确地分段。但是,我正在努力完成两件事:1。强制UiWebView(以及整个场景)进行横向渲染(我正在显示来自网址的地图)并且不允许用户旋转,并且2.将webview显示在约束下装置。现在,UIWebView在显示为横向时从屏幕上运行。

我尝试重置约束,更新缺失的约束,故事板中的方向锁定,在storyboard中查看>模式> aspectfit,并在viewcontroller方法文件中强制它横向设置(设置为aspectfit而不是aspectfill)。

我之前已经阅读了这里的问题,这些问题表示以前的iOS版本无法将一个场景锁定为纵向/横向。我发现这可能已经改变了iOS7。

我正在寻求有关如何锁定视图和缩小uiwebview中显示的网页以适应iphone应用程序尺寸的指导。感谢

2 个答案:

答案 0 :(得分:0)

四个步骤:

  1. 子类UINavigationController
  2. 覆盖UINavigationController的preferredInterfaceOrientationForPresentation:方法

    (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    
    UIDevice *myDevice = [UIDevice currentDevice];
    UIDeviceOrientation deviceOrientation = myDevice.orientation;
    
    if (deviceOrientation == UIDeviceOrientationLandscapeLeft)
    {
        return UIInterfaceOrientationLandscapeRight;
    }
    else if (deviceOrientation == UIDeviceOrientationLandscapeRight)
    {
        return UIInterfaceOrientationLandscapeLeft;
    }
    else {
        return UIInterfaceOrientationLandscapeLeft;
    }
    

    }

  3. 将您的UIViewController设置为具有UIWebView作为子类UINavigationController的rootViewController

  4. 展示您的navigationController
  5. 如果上述方法无效,请尝试将以下内容应用于tableViewController(即将呈现UINavigationController子类的viewController。

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    
    - (NSUInteger)supportedInterfaceOrientations
    {
        return UIInterfaceOrientationMaskPortrait;
    }
    
    - (BOOL)shouldAutorotate
    {
        return NO;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
        return UIInterfaceOrientationPortrait;
    }
    

    您可能还需要在Target>下添加这些设置。一般。 Device Orientation

    这似乎是我在我的应用程序中使用强制横向定位所做的一切。

答案 1 :(得分:0)

如果您要将整个应用程序锁定到横向,则可以进入info.plist文件并从“支持的界面方向”列表中删除纵向条目。