Я хочу интегрировать баннер iAd под таблицейView в UItableViewController. цель состоит в том, чтобы изменить размер таблицы и добавить в нижней части UIViewController, UITableViewController в этом случае. Я начал рассматривать, что adBannerView является UIView, поэтому я написал код ниже и для UIView, и это сработало, но когда я пытаюсь сделать то же самое, заменив его на ADBannerView, этого не произойдет. ADBanner появился в правильном положении, но изменение размера таблицы изменилось.ADBannerView ниже UITableViewController
может кто-нибудь попытаться понять, почему и помочь мне найти лучшее решение. возможно ли это без использования footerView?
здесь код. На данный момент это статический метод в классе Utils. Далее я буду использовать его в другом контексте, но вы должны легко в состоянии проверить его самостоятельно
class ViewControllerUtils {
class func showBanner<C:UIViewController where C:ADBannerViewDelegate> (viewController:C) {
println("*** showBanner isLandscape:\(UIDevice.currentDevice().orientation.isLandscape)")
// you don't care about it for the moment.
var bannerHeight:CGFloat = 50.0
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad{
bannerHeight = 66.0
} else if UIDevice.currentDevice().orientation.isLandscape {
bannerHeight = 32.0
}
println("bannerHeight: \(bannerHeight)")
// created a local variable in order to update the original frame
var viewFrame = viewController.view.frame
UIView.animateWithDuration(1.0, animations: {() -> Void in
println("viewFrame \(viewFrame)")
viewFrame.size.height -= bannerHeight
viewController.view.frame = viewFrame
println("viewFrame \(viewFrame)")
}) { (ended:Bool) -> Void in
var x = CGPoint(x: viewFrame.origin.x, y: viewFrame.origin.y + viewFrame.size.height)
var bannerFrame = CGRect(origin: x, size: CGSize(width: viewFrame.size.width, height: bannerHeight))
var container = UIView(frame: bannerFrame)
container.backgroundColor = UIColor.redColor()
//without this line it works like expected.
//with it tableview resizing is not applied anymore
container.addSubview(ADBannerView(frame: CGRect(origin: CGPointZero, size: CGSize(width: viewFrame.size.width, height: bannerHeight))))
viewController.view.superview?.addSubview(container)
}
}
}
спасибо. действительно ценят, когда 1 строка кода заменяет ... ну, я не хочу их подсчитывать ... – tylyo