ios swift advanced usage - yanivav/Test GitHub Wiki
Last SDK Version: 2.1.0
###Controlling the size of your banner The size of the banner is determined by the "size" parameter which can receive one of the following values| Value | Size | Best fits for |
|---|---|---|
STA_AutoAdSize |
Auto-size (recommended) | detects the width of the device's screen in its current orientation, and provides the optimal banner for this size |
STA_PortraitAdSize_320x50 |
320x50 | iPhone/iPod touch in portrait mode |
STA_LandscapeAdSize_480x50 |
480x50 | iPhone/iPod touch in landscape mode |
STA_PortraitAdSize_768x90 |
768x90 | iPad in portrait mode |
STA_LandscapeAdSize_1024x90 |
1024x90 | iPad in landscape mode |
- Add the STABannerDelegagteProtocol to the class declaration
class ViewController: UIViewController, STABannerDelegagteProtocol- Use
withDelegate:selfwhen initializing the STABannerView object:
startAppBanner = STABannerView(size: STA_AutoAdSize,
autoOrigin: STAAdOrigin_Bottom,
withView: self.view,
withDelegate: self);- Implement the following functions:
func didDisplayBannerAd(banner: STABannerView)
func failedLoadBannerAd(banner: STABannerView, withError error: NSError)
func didClickBannerAd(banner: STABannerView)Locating your banner 100 pixels above the view's bottom:
startAppBanner = STABannerView(size: STA_AutoAdSize,
origin: CGPointMake(0, self.view.frame.size.height - 100),
withView: self.view,
withDelegate: nil)To use a different banner origin in a specific layout, call the "setOrigin"/"setSTAAutoOrigin" with the new origin value.
###Changing the banner size and origin upon rotation If you choose to manually control the banner's size & origin upon rotation, you can do it in the didRotateFromInterfaceOrientation method.Example:
override func didRotateFromInterfaceOrientation(fromInterfaceOrientation:UIInterfaceOrientation) {
startAppBanner!.didRotateFromInterfaceOrientation(fromInterfaceOrientation)
if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
startAppBanner!.setOrigin(CGPointMake(0, 0))
} else {
startAppBanner!.setOrigin(CGPointMake(0, 200))
}
super.didRotateFromInterfaceOrientation(fromInterfaceOrientation)
}- Add the STADelegateProtocol to the class declaration
class ViewController: UIViewController, STADelegateProtocol-
Use "withDelegate:self" when calling the loadAd function:
startAppAd!.loadAd(STAAdType_Automatic, withDelegate: self) -
Implement the following functions:
func didLoadAd(ad: STAAbstractAd)
func failedLoadAd(ad: STAAbstractAd, withError error: NSError)
func didShowAd(ad: STAAbstractAd)
func failedShowAd(ad: STAAbstractAd, withError error: NSError)
func didCloseAd(ad: STAAbstractAd)The options for this parameter are:
| Constant Name | Description | Specific Ad Load Example |
|---|---|---|
STAAdType_FullScreen |
A full-page ad | startAppAd!.loadAd(STAAdType_FullScreen) |
STAAdType_OfferWall |
A full page offerwall | startAppAd!.loadAd(STAAdType_OfferWall) |
STAAdType_Overlay |
An overlay Ad is a full page Ad that runs on top of your application | startAppAd!.loadAd(STAAdType_Overlay) |
- Make sure that the size of your cell is at least as the size of the banner you would like to show
- Declare an STABannerView instance variable in your UITableView class
var startAppBanner: STABannerView?- Override the cellForRowAtIndexPath function, and add the required code:
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell? {
let reuseIdentifier = "Cell"
var cell:UITableViewCell? = tableView?.dequeueReusableCellWithIdentifier(reuseIdentifier) as? UITableViewCell
if !cell {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: reuseIdentifier)
}
if (!startAppBanner) {
startAppBanner = STABannerView(size: STA_AutoAdSize, autoOrigin: STAAdOrigin_Top, withView: cell, withDelegate: self)
}
startAppBanner!.addSTABannerToCell(cell, withIndexPath: indexPath, atIntexPathRow: 2, repeatEach: 8)
cell!.textLabel.text = "some text"
cell!.textLabel.backgroundColor = UIColor.clearColor()
return cell
}
Use the addSTABannerToCell method to set the banner's position and frequency:
-
atIntexPathRow- set the cell where you want to show the banner -
repeatEach- set repetition frequency
In the above example, the banner will be displayed at the second cell, and will be repeated each 8 cells.