私のアプリケーションの特定のスタイルで作成するボタンをカスタマイズできます。私はすべての設定で構成される新しいクラスを作成しようとしていました。新しいボタンを追加するたびに、クラスのメソッドを使用して新しいボタンをカスタマイズできます。Objective Cの既存のボタンをカスタマイズする
私はので、私は私が何か間違ったことをやってきたかもしれませんquessが、それは私がこれまで持っているもののイオスプログラミングに非常に新しいです:
私は設定
#import "CustomButton.h"
@implementation CustomButton
-(UIButton *) setButtonWithType{
self.layer.cornerRadius = 25;
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOffset = CGSizeMake(1.5f, 1.5f);
self.layer.shadowOpacity = 1.0f;
self.layer.shadowRadius = 0.0f;
self.layer.masksToBounds = NO;
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.bounds;
gradient.startPoint = CGPointMake(0.5, 0.5);
gradient.endPoint = CGPointMake(0.0, 0.5);
gradient.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor,(id)[UIColor colorWithRed:230/255.0 green:230/255.0 blue:230/255.0 alpha:1.0].CGColor, nil];
gradient.cornerRadius = self.layer.cornerRadius;
[self.layer insertSublayer:gradient atIndex:0];
return self;
}
@end
を持つクラスを作成しました
ViewController.h
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *button;
@end
ViewController.m
#import "ViewController.h"
#import "CustomButton.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
CustomButton *btn = [[CustomButton alloc] init];
self.button = [btn setButtonWithType];
//rest of the code
どのようなアイデアを作成するにはどうすればいいですか? また、非常に異なるアプローチを使用する必要がありますか?
ありがとうございました!
ニブ/ストーリーボードの権利は一切使用していませんか?あなたの新しく割り当てられたinit'dボタンにはフレームや何もありません。スーパービューに属しません:/ –
いいえ、私はストーリーボードを使用しているので、ボタンは一般的な設定でロードされ、新しいものを適用しようとするとそれは動作しません... – Syngmaster
あなたはUIBUttonのCUstomButtonクラスinteadのiboutletを宣言する必要があります! customButtonをself.buttonプロパティに割り当てる必要はありません。 –