addSubview 在调整大小的框架之外

Posted

技术标签:

【中文标题】addSubview 在调整大小的框架之外【英文标题】:addSubview outside resized frame 【发布时间】:2009-12-22 14:26:52 【问题描述】:

我已经为我的所有应用程序编写了一个“通用”广告管理类,但我遇到了一个问题。此类可以将广告视图随机添加到我的应用程序的任何视图中;为此,我的想法是调整当前视图的框架大小以降低其高度(比如说减少 50 像素)并将我的广告视图添加到我创建的可用空间中。这样,我不必费心修改我的广告集成视图,一切都是自动完成的。它运行良好,但我的广告没有响应触摸事件。我想这是因为这个广告视图在我的控制器框架“之外”。

可以降低我的视图框架的高度并提高它的边界,以便我的广告子视图真的是我视图的一部分吗?

非常感谢:)

UIView *adView = [[UIView alloc] init];
adView.frame = CGRectMake(0,267,320,100);
adView.backgroundColor = [UIColor grayColor];
adView.tag = 123456;
adView.userInteractionEnabled = YES;
CGRect myFrame = [self.view frame];
myFrame.size.height = myFrame.size.height - 100;
[self.view setFrame:myFrame];
[self.view addSubview:adView];

这是一张代表我想做的图片: http://i49.tinypic.com/2iw7lz4.jpg

【问题讨论】:

【参考方案1】:

这不是答案,但我没有选择对您的问题发表评论。

能否请您发布您在 touchesBegan 方法中的代码?

我认为可能有问题

问候

亚历杭德拉

【讨论】:

我没有实现任何 touchesBegan 方法。我的广告视图只包含一个带有目标的 UIButton。 我可以推荐的是创建一个覆盖 320 x 480 的视图并将您的控制器附加到该视图。然后在可用空间中添加您正在调整大小的视图和按钮。附加到大视图的控制器将响应按钮中的事件。我认为这可行,我希望能有所帮助:) 问候亚历杭德拉 感谢您的提示,但这并不是我想要的。由于我希望广告管理过程独立于应用程序,因此我不想更改视图层次结构:S 我放弃了:我所做的是我在主视图中创建每个视图,并在我有广告要显示时以编程方式调整子视图的大小。

以上是关于addSubview 在调整大小的框架之外的主要内容,如果未能解决你的问题,请参考以下文章

方向更改后的 UIView addsubview:告诉视图调整大小

根据 contenView 大小以编程方式调整滚动视图的大小 [Swift]

调整 uiview 的大小以及 uiimageview 的旋转

调整 UIWebView 框架大小时如何禁用 UIWebView 调整内容大小

调整大小后如何调整 UINavigationController 的视图控制器框架的大小

调整滚动视图框架的大小时,UIScrollView 子视图的大小调整不正确