gpt4 book ai didi

ios - Xib 显示空屏幕,尽管它在设计器中工作正常

转载 作者:行者123 更新时间:2023-11-29 00:16:28 24 4
gpt4 key购买 nike

我真的不明白我在这里做错了什么。我设计了一个非常非常简单的 .xib 文件,它显示一个 TextView 和一个按钮。在设计器中它工作得很好。缩放工作正如预期的那样。但是当我在模拟器中运行该程序时,我只得到一个空屏幕。有几次我看到导航栏下方按钮的下半部分,这使我得出结论: View 必须位于可视区域之外的顶部某个位置。

正如您在下图中看到的,我向 View 添加了几个约束,可以很好地缩放设计器中的 View 。我尝试过添加顶部间距。将 View 包含在 StackView 中,但似乎没有任何效果。我错过了什么?

这是使用 MvvmCross 启动 View 的代码。

    /// <summary>
/// Call the MvvmCross ShowViewModel method
/// </summary>
public bool Show<TViewModel>(IMvxBundle presentationBundle = null)
where TViewModel : IMvxViewModel
{
return base.ShowViewModel<TViewModel>(presentationBundle: presentationBundle);
}

/// <summary>
/// Show a view with viewmodel
/// </summary>
public bool Show<TViewModel>()
where TViewModel : IMvxViewModel
{
return Show<TViewModel>();
}

演示文稿在自定义 View 演示器中处理:

using MvvmCross.Core.ViewModels;
using MvvmCross.iOS.Views;
using MvvmCross.iOS.Views.Presenters;
using MvvmCross.Platform;
using Notifier.Classes;
using Notifier.Interfaces;
using UIKit;
using static Notifier.Classes.ViewModelController;

namespace Notifier.iOS.Classes.MvvmCross
{
public class ViewPresenter : MvxIosViewPresenter
{
private IMvxIosViewCreator _viewCreator;

private IPlatformLog _log;
private IPlatformLog Log => _log == null ? _log = Mvx.Resolve<IPlatformLog>() : _log;

protected IMvxIosViewCreator ViewCreator
{
get { return _viewCreator ?? (_viewCreator = Mvx.Resolve<IMvxIosViewCreator>()); }
}

public ViewPresenter(IUIApplicationDelegate applicationDelegate, UIWindow window)
: base(applicationDelegate, window)
{
}

public override void Show(MvxViewModelRequest request)
{
base.Show(request);
}
}
}

这是 .xib 的内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HomeView">
<connections>
<outlet property="view" destination="2" id="RRd-Eg-VrN"/>
<outlet property="Registration" destination="11" id="name-outlet-11"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="2" horizontalHuggingPriority="1">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<subviews>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="10" translatesAutoresizingMaskIntoConstraints="NO">
<rect key="frame" x="16" y="16" width="568" height="128"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="11" translatesAutoresizingMaskIntoConstraints="NO">
<rect key="frame" x="16" y="188" width="568" height="30"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
</subviews>
<constraints>
<constraint id="14" firstItem="2" firstAttribute="trailing" secondItem="10" secondAttribute="trailing" constant="16"/>
<constraint id="15" firstItem="10" firstAttribute="leading" secondItem="2" secondAttribute="leading" constant="16"/>
<constraint id="16" firstItem="11" firstAttribute="leading" secondItem="2" secondAttribute="leading" constant="16"/>
<constraint id="17" firstItem="2" firstAttribute="trailing" secondItem="11" secondAttribute="trailing" constant="16"/>
</constraints>
</view>
</objects>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedScreenMetrics key="destination" type="retina47"/>
</simulatedMetricsContainer>
</document>

这是设计器中的通用 View :

enter image description here

这是特定 iPhone 的设计器:

enter image description here

这是我在模拟器中看到的:

enter image description here

最佳答案

应该是约束问题。请检查您的约束是否定义正确。正确定义约束后,只有在 xib 中选择 View 时才会看到蓝线。

从您的屏幕截图来看,您只定义了前导和尾随约束。还请定义顶部和高度约束。

关于ios - Xib 显示空屏幕,尽管它在设计器中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45199075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com