我的问题是如何在手指悬停在按钮上时更改按钮的大小?
很抱歉,如果这个问题已经得到解答,但我没有找到任何结果。 如果已经回答,请将线程作为答案链接:)
我已经用UIView尝试了它,然后用CGRectIntersectsRect监听它是否触摸了按钮。但我认为这是一种更简单的方法。
答案 0 :(得分:1)
您可以添加观察该事件的方法。我认为,您正在寻找的是UIControlEventTouchDown
- (void)initOrSomething {
UIButton *button = ...
[button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchDown];
}
- (void)buttonPress:(UIButton *)button {
button.frame = CGRectMake(0, 0, 100, 100);
}
如果您将自己添加为目标,则应该可以更改选择器中的框架。
答案 1 :(得分:1)
- (IBAction)buttonPressed:(id)sender {
CGRect f = self.button2.frame;
f.origin.x += 10;
f.size.width += 10;
self.button2.frame = f;
}
使用UIControlEvents TouchDown添加此操作。
希望这会有所帮助......
答案 2 :(得分:-1)
- (void)viewDidLoad {
...
UILongPressGestureRecognizer *pressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(buttonPressed:)];
pressGesture.minimumPressDuration = 0.0;
pressGesture.delegate = self;
[_button addGestureRecognizer: pressGesture];
...
}
- (void)buttonPressed:(UILongPressGestureRecognizer *)rec {
switch (rec.state) {
case UIGestureRecognizerStateBegan:
[UIView animateWithDuration:0.1 animations: ^{
_button.transform = CGAffineTransformMakeScale(0.8, 0.8);
}];
break;
case UIGestureRecognizerStateEnded:
[UIView animateWithDuration:0.1 animations: ^{
_button.transform = CGAffineTransformIdentity;
}];
break;
default:
break;
}
}
当用户按住按钮时,这基本上会使按钮缩小。当手指抬起时,按钮尺寸会恢复到原始尺寸。