小编nic*_*las的帖子

全屏:调整其父视图大小时不调整AVPlayerLayer的大小

我正在使用MonoTouch中的AV Foundation开发AVPlayer API的视频播放器(但是Objective-c中的解决方案也可能很好).我正在尝试实现全屏模式.

为了显示视频帧,我有一个UIView(让我们称之为回放视图),我将AVPlayerLayer添加为回放视图层的子视图:

UIView *playbackView = ...
AVPlayerLayer *playerLayer = ...
[playbackView.layer addSublayer:playerLayer];
Run Code Online (Sandbox Code Playgroud)

图层属性设置如下:

playerLayer.needsDisplayOnBoundsChange = YES;
playbackView.layer.needsDisplayOnBoundsChange = YES;
Run Code Online (Sandbox Code Playgroud)

确保在更改播放视图大小时调整它们的大小.最初,回放视图具有坐标(0,0,320,180)(仅显示在UI的顶部).然后,我通过将回放视图框架大小设置为窗口大小来执行全屏动画:

playbackView.frame = playbackView.window.bounds;
Run Code Online (Sandbox Code Playgroud)

它工作正常.播放视图现在正在填充所有窗口(设置背景颜色以查看它).但我的AVPlayerLayer仍然保持在视图的顶部,就像之前在非全屏模式下一样.

为什么AVPlayer图层不会根据播放视图的新大小调整大小?我是否还需要在AVPlayerLayer上制作动画?使用setNeedsLayout,layoutSubviews刷新(它似乎没有改变某些东西......)?删除AVPlayerLayer并重新添加?

objective-c avfoundation xamarin.ios avplayer

15
推荐指数
2
解决办法
1万
查看次数

使用IOS6在iPad上展示UIActionSheet时崩溃

我在iPad上用iOS 5呈现了UIActionSheet,没有任何问题.现在,在我的iPad上安装iOS 6时,应用程序在执行相同操作时崩溃.我不知道如何解决这个问题,因为我的代码没有改变,堆栈跟踪很难理解.有人遇到同样的问题吗?

我的初始化代码UIActionSheet:

UIActionSheet *menu = [[[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"ExportMethod", @"") delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", @"") destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"ExportMethodMail", @""), NSLocalizedString(@"ExportMethodiTunes", @""), nil] autorelease];
self.actionSheet = menu;
Run Code Online (Sandbox Code Playgroud)

提出UIActionSheet:

[self.actionSheet showFromBarButtonItem:self.navigationItem.rightBarButtonItem animated:YES];
Run Code Online (Sandbox Code Playgroud)

我也尝试了其他可能的电话:

[self.actionSheet showInView:self.view];
[self.actionSheet showFromTabBar:self.tabBarController.tabBar];
[self.actionSheet showFromRect:self.view.bounds inView:self.view animated:YES];
Run Code Online (Sandbox Code Playgroud)

但是,应用程序总是在此行崩溃并显示以下消息:

Thread 6: EXC_BAD_ACCESS (code = 1, adress = 0xcc)
Run Code Online (Sandbox Code Playgroud)

如果我在没有调试器的情况下运行应用程序,我有以下堆栈跟踪:

 Thread 5 Crashed:
 0   libicucore.A.dylib             0x39620570 ucol_getVersion + 0
 1   TextInput                      0x36aed21a   KB::WordTrie::dictionary_versions_ok(KB::ReadOnlyDataFile const*) const + 62
 2   TextInput                      0x36aecfa4 KB::WordTrie::load(KB::String const&) + 276
 3   TextInput                      0x36ae6490 <redacted> …
Run Code Online (Sandbox Code Playgroud)

objective-c uikit uiactionsheet ipad ios

1
推荐指数
1
解决办法
1613
查看次数