我有一个 UISplitViewController,它的辅助(详细)VC 是一个 UICollectionViewController。我希望集合的单元格根据集合视图的大小和方面的变化来调整大小。我通过覆盖 UIContentContainer 协议方法触发此调整大小:
// MARK: - UIContentContainer protocol methods
override
func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
{
setFlowLayoutItemSizeForViewSize(size)
collectionViewLayout.invalidateLayout()
}
Run Code Online (Sandbox Code Playgroud)
当设备旋转时,这就是我想要的方式调用和工作;但是当 splitViewController?.displayModeButtonItem() 提供的按钮被按下以显示或折叠主(主)视图控制器时,不会调用此方法。由于折叠必然会更改辅助(详细信息)视图的大小,因此我认为应该在触发时调用 viewWillTransitionToSize... 方法。
所以,两个问题:
1) 实际上是否应该在按下 displayModeButtonItem 时调用 viewWillTransitionToSize... 方法?如果是这样,我似乎发现了一个错误。
2)如果我看到的实际上是正确的行为,任何人都可以建议我的辅助(详细)控制器“知道”什么时候按下 displayModeButtonItem 或者它的大小何时因该按钮而改变被压?
谢谢!
卡尔
button uisplitviewcontroller ios displaymode viewwilltransitiontosize
我正在使用日历DisplayMode="Year",this.DataContext = new SampleModel();因此我可以访问模型的属性。然而日历渲染错误(见截图)
代码归结为:Xaml:
<Window x:Class="Excel2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="600" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="220"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Calendar DisplayMode="Year"></Calendar>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
背后代码:
using ....
namespace Excel2
{
class SampleModel
{
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new SampleModel();
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
如您所见,渲染日历时不显示任何年份信息。
如果我不使用网格定义,Displaymode=Year或者this.DataContext =...一切都会正确呈现。
这是 XAML 中的错误吗?
将配置添加到应用程序模块environment.production ? ServiceWorkerModule.register('./ngsw-worker.js') : []并serviceWorker在 .angular-cli.json 中启用后,我的应用程序在通过 Chrome 安装在我的设备(LG G6)display上并在我的设备上打开standalone或fullscreen打开后在我的设备上设置 manifest.json 中的属性后,应用程序始终在浏览器中打开在新标签中。当我删除 Service Worker 配置(应用模块中的行)时,仅在独立或全屏模式下打开清单的应用。
安装应用程序后,应用程序应以 stadalone 或全屏模式打开,取决于 manifest.json 中的设置值。
我有使用 4.3 版生成并更新到 5.1.3 的应用程序,添加 @angular/service-worker 并build使用--prod. 为了为应用程序提供服务,我在我的 chrome 中使用端口转发。
清单文件
{
"short_name": "FindPark",
"name": "Find Nearby Car Parks",
"start_url": "/search",
"theme_color": "#206886",
"background_color": "#ffffff",
"display": "standalone",
"orientation": "portrait",
"icons": [
{
"src": "/assets/favicon-72x72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "/assets/favicon-96x96.png",
"sizes": …Run Code Online (Sandbox Code Playgroud)