窗口没有填满整个屏幕

Posted

技术标签:

【中文标题】窗口没有填满整个屏幕【英文标题】:Window doesn't fill all screen 【发布时间】:2016-01-19 20:25:28 【问题描述】:

我是 Xamarin 的初学者,这是我的第一个应用程序。我正在做的只是第一步:创建一个视图。我的问题是它没有填满整个屏幕。我删除了视图,然后创建了一个存在同样问题的窗口。

这是 XIB:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6211" systemVersion="14A298i" targetRuntime="ios.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6204"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginView">
            <connections>

              <outlet property="window" destination="7" id="176-fQ-JAJ"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <window opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="7">
            <rect key="frame" x="0.0" y="0.0"  />
            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
            <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
            <point key="canvasLocation" x="-0.2000008" y="20.2"/>
            <subviews>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Label" lineBreakMode="tailTruncation" minimumFontSize="10" id="8" translatesAutoresizingMaskIntoConstraints="NO" fixedFrame="YES">
                    <rect key="frame" x="139" y="33"  />
                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
            </subviews>
        </window>
    </objects>
    <resources>
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_120x120.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_152x152.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_180x180.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_29x29.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_40x40.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_58x58.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_76x76.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_80x80.png"  />
        <image name="Media.xcassets/AppIcons.appiconset/ic_launcher_87x87.png"  />
    </resources>
</document>

我做错了什么?提前致谢。

编辑。

 public partial class LoginView : BaseView<LoginViewModel>
    
        public LoginView() : base("LoginView", null)
        
        

        public override void DidReceiveMemoryWarning()
        
            base.DidReceiveMemoryWarning();

            // Release any cached data, images, etc that aren't in use.
        

        public override void ViewDidLoad()
        
            base.ViewDidLoad();

            NavigationController.NavigationBarHidden = true;
            // Perform any additional setup after loading the view, typically from a nib.
        

    

基础视图:

 public abstract class BaseView<TViewModel> : MvxViewController, IView<TViewModel> where TViewModel : IViewModel
    
        private IConfigurationService configurationService;
        private IGlobalizationService globalizationService;

        public BaseView(string nibName, NSBundle bundle) : base(nibName, bundle)
         

        public IConfigurationService ConfigurationService
        
            get
            
                if (this.configurationService == null)
                
                    this.configurationService = Mvx.Resolve<IConfigurationService>();
                

                return this.configurationService;
            
        
        public IGlobalizationService GlobalizationService
        
            get
            
                if (this.globalizationService == null)
                
                    this.globalizationService = Mvx.Resolve<IGlobalizationService>();
                

                return this.globalizationService;
            
        
        public new TViewModel ViewModel
        
            get  return (TViewModel)base.ViewModel; 
            set  base.ViewModel = value; 
        

【问题讨论】:

iOS Application Doesn't Fill iPhone Screen的可能重复 我正在使用 MVVM Cross,所以我不使用 UIViewController 或启动屏幕。我也不使用 Xcode……我使用 Visual Studio 进行开发。我做了自己的 LaunchScreen 没有通过 info.plist 调用它 嗨丹尼尔,你是如何构建你的视图或视图控制器的? MvvmCross 只是原生 iOS ViewController 的一个非常薄的包装器。你能展示实际视图控制器的代码或者你是如何创建视图的吗?我们需要更多信息才能继续。 @Stephanvs 我也添加了一个捕获。感谢您的宝贵时间。 我的臀部没有任何问题。 【参考方案1】:

解决方案是在 ViewDidLoad 函数中添加此代码

        NavigationController.NavigationBarHidden = true;

【讨论】:

很高兴你解决了这个问题,但你对“窗口无法填满屏幕”的描述非常不准确

以上是关于窗口没有填满整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 不会在 iPad 上填满整个屏幕

AVCaptureVideoPreviewLayer 没有填满屏幕

纹理不填充图形 - OpenGL

怎么让电脑画面填满屏幕??

带有 SpriteView 和 SwiftUI 的场景不会填满整个屏幕

如何动态调整单个 UIStackView 的行高以填满整个屏幕?