Изменение размера UITableView при отображении рекламы AdWhirl в нескольких представлениях - PullRequest
1 голос
/ 07 ноября 2011

Я пытаюсь интегрировать AdWhirl в свое приложение для iPhone с помощью одноэлементного приложения AppDelegate, чтобы я мог использовать один и тот же экземпляр AdWhirl в нескольких представлениях, но не могу понять, как изменить размеры таблиц в этих представлениях. Код, который я использую:

in ... AppDelegate.h:

#import "AdWhirlView.h"
#import "AdWhirlDelegateProtocol.h"

@interface ...AppDelegate : NSObject <UIApplicationDelegate, AdWhirlDelegate>
AdWhirlView *awView;

...

@property (nonatomic, retain) AdWhirlView *awView;

in ... AppDelegate.m didFinishLaunchingWithOptions:

awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];

также в ... AppDelegate.m Я добавляю необходимые методы делегата

(NSString *)adWhirlApplicationKey...
(UIViewController *)viewControllerForPresentingModalView...

Этот код позволяет мне показывать одно и то же объявление в нескольких представлениях, но я не могу понять, как изменить размер UITableView, чтобы изменить его высоту, чтобы она была короче при показе объявления, чтобы UITableView отображал либо полную высоту, если ее нет Размер объявления или изменяется, если внизу экрана есть объявление. У меня есть UITableView в качестве подпредставления UIViewController под названием myMainView.

Я попытался изменить свойства авторазмера в файле Nib для UITableView, чтобы в нижней части была переменная распорка, и я добавляю экземпляр AdWhirl в представление с помощью этого кода:

...AppDelegate * myDelegate = (...AppDelegate *)[[UIApplication sharedApplication] delegate];
[myDelegate.awView setFrame:CGRectMake(0, 480-20-44-50, 320, 50)];
[self.myMainView addSubview: myDelegate.awView];

Это отображает объявление в правильном месте в нижней части экрана, но UITableView не меняет размер. Как я должен это делать?

1 Ответ

0 голосов
/ 07 ноября 2011

Я думаю, вам нужно создать UIView со встроенным UITableView.Я пытался сделать что-то подобное, и это был единственный способ заставить это работать.UITableView верхнего уровня автоматически изменяет свой размер, чтобы занимать весь экран.

Просто расширяя это, вы, вероятно, захотите объявить что-то в своем заголовке следующим образом:

@interface ExampleClass:UIViewController {
    UITableView *tableView;
}

@property (nonatomic,retain) IBOutlet UITableView *tableView;

Затем ввашей реальной реализации, вы можете изменить размер объявленного tablview в любое время, выполнив:

CGRect tableFrame = tableView.frame;
//Decrease the height of table by height of ad banner
tableFrame.size.height = tableView.frame.size.height - adBannerView.frame.size.height;

tableView.frame = tableFrame;
...