如何自定义UIButton以像表格视图一样运行? 我已经尝试在Interface Builder中创建它,但由于按钮是不可见的并且没有图像,所以当你按下按钮时它永远不会突出显示。我希望这种灰色的行为就像在表格视图上一样。 有谁知道怎么做?
答案 0 :(得分:0)
我创建的Custom Control
行为类似于UITableViewCell
。见下面的代码
<强> MyButton.h 强>
#import <UIKit/UIKit.h>
@interface MyButton : UIView
- (id)initWithFrame:(CGRect)frame selector:(SEL)sel target:(id)target;
@end
<强> MyButton.m 强>
#import "MyButton.h"
#import <QuartzCore/QuartzCore.h>
@interface MyButton()
@property(assign)SEL selector;
@property(assign)id target;
@end
@implementation MyButton
- (id)initWithFrame:(CGRect)frame selector:(SEL)sel target:(id)target
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.selector=sel;
self.target=target;
self.backgroundColor=[UIColor darkGrayColor];
self.layer.cornerRadius=5.0;
UITapGestureRecognizer *tapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
[self addGestureRecognizer:tapGesture];
}
return self;
}
-(void)tapAction:(id)sender{
[UIView animateWithDuration:.2 animations:^{
[self setBackgroundColor:[UIColor lightGrayColor]];
}];
[self performSelector:@selector(deSelect) withObject:nil afterDelay:.2];
}
-(void)deSelect{
[UIView animateWithDuration:.2 animations:^{
[self setBackgroundColor:[UIColor darkGrayColor]];
} completion:^(BOOL finished) {
[_target performSelector:_selector withObject:self];
}];
}
/*- (void)drawRect:(CGRect)rect
{
}*/
@end
因为,它使用UIView
您可以轻松添加或在此控件上绘制任何内容,并轻松自定义。
希望这会有所帮助。 欢呼声。
答案 1 :(得分:0)
简单的方式:
制作一个10x10像素的灰色方形png图像,保存并命名为&#34; greayButtBkg.png&#34;并将其拖入XCode中的SupportingFiles。 将按钮的出口声明为.h文件,将IBAction方法声明为.m文件。
<强> yourFile.h:强>
@property (weak, nonatomic) IBOutlet UIButton *myButton;
<强> yourFile.m:强>
- (IBAction)pressButton:(id)sender {
[_myButton setBackgroundImage:[UIImage imageNamed:@"greyButtBkg"] forState:UIControlStateHighlighted];
}
当你点击它时,你的按钮会变成灰色背景颜色,当你松开手指时,它会回到默认的clearColor。
希望这有帮助!