我有一个UIView,它在点击后显示一个弹出窗口.弹出窗口需要添加到主UIWindow以确保它在其他所有内容之上.
我希望这个弹出窗口的位置与我的UIView相关,所以我需要知道我的UIView在窗口中的相对位置.
问题:当UIView不是直接在UIWindow中时(如果在我的viewController视图中),如何在UIWindow中找到UIView的位置?
UIApplication有一个方法keyWindow,但是如果显示警报视图,则返回警报视图的窗口而不是应用程序的主窗口.
如何获得应用程序的主窗口?
我想在窗口坐标系中获取scrollView的原点.例如,目前,scollView的起源是(0,51).但是在窗口坐标系中它应该是51 + 44(导航栏高度)+20(状态栏高度)= 115.在窗口坐标系中,scrollView.frame.origin应该是(0,115).我尝试使用convertPoint:方法,但有时会得到(0,51)或(0,0).请提供解决方案.谢谢
我觉得这很简单[myWindow resignKeyWindow],[self.window makeKeyAndVisible]但我猜不是......你们不知道该怎么办?
谢谢 :)
我正在为我的应用添加一个额外的UIWindow.我的主窗口正确旋转,但我添加的这个附加窗口不会旋转.
根据当前设备方向旋转UIWindow的最佳方法是什么?
为了使UIView所有视图都像行为一样UIAlertView,我看到的最好的方法是将它放在应用程序窗口中,即将视图添加到:
[[[UIApplication sharedApplication] delegate] window]
Run Code Online (Sandbox Code Playgroud)
但是,我发现它的缺点是它不会自动进行旋转.为了使其轮流,最好的方法是在当前的AppDelegate window.navigationController/ 上添加视图rootViewController,但是,通过这样做,它将不再是所有内容.假设当显示视图并且有一个modalViewController弹出窗口时,模态视图肯定会掩盖视图.
我的问题是,是否可以将子视图添加到最顶层的窗口并支持方向?在这种情况下我需要两组Nib文件吗?如何UIAlertView结合最顶层和定位支持的魔力?当我查看时UIAlertView.h,我看到实际上有2个UIWindows,一个叫originalWindow,另一个叫dimWindow.有没有可以找到源代码的地方UIAlertView.m?
我有同样的问题,如本问题所述:
我在哪里可以将我的应用程序使用的窗口从UIWindow更改为我自己的子类"MyWindow"和storyboard?
我的问题是如何在我的app委托中实现一个'window'getter方法,返回'MyWindow'子类?或者也许有其他方法可以将我的子类分配到我的应用程序的主窗口?
我有两个窗户 - 一个是前窗,另一个是后窗.前面的一个用于覆盖后面的一些东西.我希望能够捕捉前窗某些部分的触摸,而不是其他部分; 我希望前窗在某些区域接收触摸,但是将它们传递到其他区域的后窗.
关于我怎么做的任何想法?
当我的应用程序第一次加载时,我将rootViewControllermy 的属性设置UIWindow为controllerA.
在我的应用程序中的某个时候,我选择更改rootViewController为controllerB.
问题在于,有时当我进行翻转过渡时controllerB,我会看到controllerA背后的观点.由于某种原因,视图没有被删除.什么更令人担忧的是,设置后rootViewController到controllerB,controllerA的dealloc方法永远不会被解雇.
我已经尝试UIWindow在切换之前删除手动的子视图controllerB,这解决了controllerA在后台看到视图的问题但是controllerAdealloc仍然永远不会被调用.这里发生了什么????
苹果文档说:
根视图控制器提供窗口的内容视图.将视图控制器分配给此属性(以编程方式或使用Interface Builder)将视图控制器的视图安装为窗口的内容视图.如果窗口具有现有视图层次结构,则在安装新视图之前将删除旧视图.
UPDATE
这是我的AppDelegate的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self showControllerA];
[self.window makeKeyAndVisible];
return YES;
}
- (void)showControllerA
{
ControllerA* a = [ControllerA new];
self.window.rootViewController = a;
}
- (void) showControllerB {
ControllerB* b = …Run Code Online (Sandbox Code Playgroud) 当用户进入MFMailComposerViewController并按下主页按钮时,我收到以下错误:
[UIWindow endDisablingInterfaceAutorotationAnimated:]调用>而不匹配-beginDisablingInterfaceAutorotation.忽略.
我浏览了论坛,其他一些人在不同情况下遇到过这个错误,但是没有解决方案.
我已shouldAutorotate在应用程序中的所有View控制器中设置为:
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation
{
return interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown ||
interfaceOrientation == UIInterfaceOrientationPortrait;
}
Run Code Online (Sandbox Code Playgroud) uiwindow ×10
ios ×8
iphone ×5
objective-c ×5
uiview ×3
cocoa-touch ×2
ios4 ×1
orientation ×1
rootview ×1
touch ×1
uialertview ×1
xcode ×1