gpt4 book ai didi

objective-c - 在 iPad 上以编程方式添加 subview ,硬编码

转载 作者:行者123 更新时间:2023-12-03 17:17:26 27 4
gpt4 key购买 nike

我正在我的应用程序中添加一个自定义状态栏来监控上传进度。这在纵向模式下工作得很好,但是当我处于横向模式并且出现自定义状态栏时,它总是出现在主页按钮的另一侧。我认为这是因为我对框架进行了硬编码。

我将 XIB 文件设置为自动调整其长度。

看一下:

-(void) animateStatusBarIn {
float x = window.frame.origin.x;
float y = window.frame.origin.y;
float height = 20;
float width = window.frame.size.width;
CGRect statusFrame = CGRectMake(x, y-20, width, height);
iPadUploadStatusBar *statusView = [[iPadUploadStatusBar alloc] initWithNibName:@"iPadUploadStatusBar" bundle:nil];

self.status = statusView;

[statusView release];

status.view.frame = statusFrame;
[window addSubview:status.view];

[UIView beginAnimations:@"slideDown" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
statusWindow.frame = CGRectMake(0.0f, 0.0f, 1024.0f, 20.0f);
[UIView commitAnimations];
}

在纵向方向上一切都很好,但就像我说的,它总是决定新的状态栏应该位于主页按钮的对面。

顺便说一句,这是在 AppDelegate.m 内部,所以我使用默认 appDelegate 文件中的现有窗口

最佳答案

首先,您从哪里调用 -animateStatusBarIn 方法?

发生旋转时,您不必为 iPadUploadStatusBar 的 View 设置框架(以防每次方向更改时调用 animateStatusBar 方法)。

您所要做的就是在 iPadUploadStatusBar nib 中正确设置 View 的自动调整大小蒙版,并将其作为 subview 添加到 window 或已经是 window subview 的 viewController View 。旋转及其动画都会自动为您处理。

关于objective-c - 在 iPad 上以编程方式添加 subview ,硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com