IOS 版本 11 及更高版本的 Ionic 1 应用中的内容重叠

Content overlaps in Ionic 1 app for IOS version 11 and above

我有一个使用 Cordova、Ionic V1 和 AngularJS V1 构建的应用程序,在一个特定的控件中显示日期, 内容与之前的值重叠。此问题仅在 IOS 11.4.1(最新版本)中出现。在以前的版本 IOS 中,控件工作正常。

我附上了屏幕截图

在 XCode 检查后,我发现这是由 display: block 属性 引起的问题。所以我尝试更改显示的值,大多数值在 IOS 中表示不受支持,而有效的是 display: -webkit-box-。但是当我添加所有内容移动到最左侧,即我在图像中突出显示的月份、日期和年份值时。

下面是代码

this.selectDate = function (date) {
        if (this.isDisabled(date)) return;
        this.selectedDate = angular.copy(date);
        this.selectedDate.setHours(0, 0, 0, 0);
        this.tempDate = angular.copy(this.selectedDate);
    };

模板代码

<div class=row>
  <div class="col datepicker-day-of-month" 
       ng-click="datepickerCtrl.changeType(\'date\')"> 
       {{datepickerCtrl.selectedDate | date: \'d\'}}
  </div>
</div>

以上代码是ionic-datepicker的一部分link.

日期内容 在 Android 上正常工作 仅在 IOS V 11.4.1 中有问题。

谢谢:)

我没有测试过,但我遇到过类似的问题。请尝试将 <div> 替换为 <span> 并查看是否有效:

<div class=row>
  <span class="col datepicker-day-of-month" 
       ng-click="datepickerCtrl.changeType(\'date\')"> 
       {{datepickerCtrl.selectedDate | date: \'d\'}}
  </span>
</div>

也可以使用 display: inline 而不是 display: block

希望对您有所帮助。

此问题与不支持 IOS 11.4.1 的显示 属性 值有关。

display: block;

以上属性在最新版本IOS中无效。

所以我改变了显示的值属性

display: -webkit-inline-box !important;
text-align: -webkit-center !important;

text-align 用于将 div 个元素居中对齐。

此解决方案适用于 Android 和 IOS。

希望这对其他人有帮助。