我有一个创建自定义UIButton的方法,允许我使用QuartzCore更改按钮的颜色.但触摸时按钮不会突出显示.
- (UIButton *)makeHeaderButton {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIFont *textFont = [UIFont boldSystemFontOfSize:12];
UIColor *textColor = [UIColor colorWithRed:80/255.0 green:109/255.0 blue:145/255.0 alpha:1.0];
UIColor *backgroundColor = [UIColor colorWithRed:250/255.0 green:250/255.0 blue:250/255.0 alpha:1.0];
[button setTitleColor:textColor forState:UIControlStateNormal];
button.titleLabel.font = textFont;
button.autoresizesSubviews = YES;
button.layer.cornerRadius = 8;
button.layer.borderWidth = 1;
// next 2 properties set using QuartzCore class, no other way to set button colors
button.layer.borderColor = [UIColor grayColor].CGColor;
button.layer.backgroundColor = backgroundColor.CGColor;
button.clipsToBounds = YES;
return button;
}
Run Code Online (Sandbox Code Playgroud)
如何使这些按钮突出显示为常规圆形矩形按钮?
我正在尝试实施Admob的智能横幅广告.我无法找到一种方法来处理旋转设备时更新广告的方法.根据AdMob的文档,设置adSize属性会导致广告重新加载.这适用于标准横幅广告,但似乎不适用于智能横幅广告.
- (void)viewDidLoad {
[super viewDidLoad];
self.gadBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];
self.gadBannerView.adUnitID = @"myBannerID";
self.gadBannerView.rootViewController = self;
[self.gadBannerView loadRequest:[GADRequest request]];
[self.view addSubview:self.gadBannerView];
}
- (void)viewDidLayoutSubviews {
if (self.view.bounds.size.width < self.view.bounds.size.height) {
// portrait orientation
self.gadBannerView.adSize = kGADAdSizeSmartBannerPortrait;
NSLog(@"portrait banner size: %@",NSStringFromCGRect(self.gadBannerView.frame));
} else {
// landscape orientation
self.gadBannerView.adSize = kGADAdSizeSmartBannerLandscape;
NSLog(@"landscape banner size: %@",NSStringFromCGRect(self.gadBannerView.frame));
}
}
Run Code Online (Sandbox Code Playgroud)
广告的大小与初始化对象时的大小相同.我也尝试将GADBannerView对象设置为nil然后再次初始化,但这不起作用.