我想使用代碼,所以這是一個可重用的對象來創建此按鈕,可以設置最小寬度,高度,或將其拉伸以適應圖標和標籤。在整個應用程序中,我們將在多個區域重複使用該按鈕,其中包括一個薄的圓形矩形筆觸,一個背景色,一個圖標(trans PNG)和一個標籤。我們希望使背景顏色和筆觸顏色可配置,以便我們可以打開/關閉按鈕。
編輯:幾乎工作的代碼,但該文本標籤塊是白色和需要調整圖像以適合於幀和兩個爲中心。
自定義按鈕的代碼:
#import "CustomButton.h"
@implementation CustomButton
- (id)initWithFrame:(CGRect)frame image:(NSString *)image title:(NSString *)title background:(UIColor *)background border:(UIColor *)border
{
self = [super initWithFrame:frame];
if (self)
{
self = [UIButton buttonWithType:UIButtonTypeCustom];
CALayer *layer = [self layer];
self.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
// background
if (background) {
layer.backgroundColor = (__bridge CGColorRef)(background);
} else {
layer.backgroundColor = [[UIColor darkGrayColor] CGColor];
}
// border
if (border) {
layer.borderColor = (__bridge CGColorRef) (border);
} else {
layer.borderColor = [[UIColor lightGrayColor] CGColor];
}
layer.cornerRadius = 2.0f;
layer.borderWidth = 0.5f;
// icon
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:image]];
[self addSubview:imageView];
// text label
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 25, 55, 15)];
titleLabel.font = [[UIFont alloc] fontWithSize:7.00];
titleLabel.text = title;
[self addSubview:titleLabel];
[self setFrame:frame];
}
return self;
}
@end
編輯:更新後的代碼塊的上方,並得到按鈕的viewController使用在各個視圖中的下面的代碼來顯示:
CGRect buttonFrame = CGRectMake(125, 3, 52, 37);
CustomButton *btnNearby = [[CustomButton alloc] initWithFrame:buttonFrame image:@"map.png" title:@"NEARBY" background:nil border:nil];
[myCustomView addSubview:btnNearby];
自定義按鈕出現但仍未正確格式化。
下面是應該顯示在按鈕的中心的例子圖標(白色PNG瓦特/反式)。的期望的功能
總結:
1)可重複使用的按鈕 2)可以具有最小的寬度/高度或覆蓋以匹配標籤和圖像+標籤 3的高度的寬度)具有可配置的筆畫顏色 4)匹配上面的按鈕圖標與筆畫+圖標+標籤+背景顏色 5)可以更改邊框顏色切換開/關
更新我的代碼塊,以顯示更多我試圖完成與評論中的問題。請參閱上面的代碼。 –