systemLayoutSizeFittingSize我在 iOS 13 Beta 上遇到问题。我正在开发一个 NativeScript 插件,它使用 来systemLayoutSizeFittingSize“UICollectionViewCell测量和布局”单元格中的 UIView。我一直在做的是:
systemLayoutSizeFittingSize如果我需要强制测量/布局UIView单元格中的内容,请手动调用或者
systemLayoutSizeFittingSize并再次测量和布局UIView单元中的内容systemLayoutSizeFittingSize在 iOS 13 beta 之前,这一切都运行得很完美,操作系统本身调用 API 的方式似乎发生了变化。在 iOS 13 beta 中,操作系统根本不调用该 API,而是使用collectionView:layout:sizeForItemAtIndexPath: API 来确定 UICollectionViewCell 的大小。在 iOS 12 及更低版本中,UICollectionView 完成其初始布局传递后,它会调用每个 UICollectionViewCell,systemLayoutSizeFittingSize这使您有机会让单元格告知其大小。在iOS 13中systemLayoutSizeFittingSize不再被称为。
也许我必须更改或调用 UIView 本身或 UICollectionView 才能使其像以前在 iOS 12 中一样工作,但我有点不明白我是否正确使用了它systemLayoutSizeFittingSize。
所以我的问题是,我应该期望systemLayoutSizeFittingSize操作系统自动调用 a 还是这只是手动强制 aUICollectionViewCell告知其大小的一种方法?总的来说我使用得正确吗?
编辑:
经过进一步调查,iOS 13(测试版)上似乎有变化systemLayoutSizeFittingSize。estimatedItemSize当设置布局时,不再像以前那样调用它。我创建了一个项目来显示由这种行为变化引起的问题,我将向 iOS 团队报告这一问题。该项目可以在这里 …
我创建了一个包含 4 到 5 个字段的学生表单。对于联系电话,我有 2 个字段,国家代码和电话号码。如果用户只输入两个字段之一,即输入了国家代码但电话号码不是,反之亦然,我想抛出错误。但是,如果两个字段都为空,则它是有效的,因为它们都是非必填字段。我不知道我怎么能做到这一点。请帮忙。提前致谢。
这是我的模板:
<mat-form-field >
<input matInput type="number" formControlName="countryCode" placeholder="Country Code(+)" name="countryCode" class="form-control" id="countryCode">
</mat-form-field>
<mat-form-field >
<input matInput type="number" formControlName="phnNumber" placeholder="Phone Number" name="phnNumber" class="form-control" id="phnNumber">
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
我的表单组:
this.addForm = this.formBuilder.group({
studentName: ['', Validators.required],
phnNumber: new FormControl(''),
countryCode: new FormControl(''),
});
Run Code Online (Sandbox Code Playgroud)