Ios 按下按钮时更改按钮大小

Ios 按下按钮时更改按钮大小,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我的问题是,当手指悬停在按钮上时,如何更改按钮的大小 对不起,如果这个问题已经回答了,但我没有找到任何适合我的结果。 如果已回答,请将该线程链接为答案:) 我已经用UIView试过了,然后用CGRectIntersectsRect听,如果它碰到了按钮。但我认为有一种更简单的方法可以做到这一点。您可以添加一个观察该事件的方法。我想你要找的是触地得分 - (void)initOrSomething { UIButton *button = ... [button addTarget:

我的问题是,当手指悬停在按钮上时,如何更改按钮的大小

对不起,如果这个问题已经回答了,但我没有找到任何适合我的结果。 如果已回答,请将该线程链接为答案:)


我已经用UIView试过了,然后用CGRectIntersectsRect听,如果它碰到了按钮。但我认为有一种更简单的方法可以做到这一点。

您可以添加一个观察该事件的方法。我想你要找的是触地得分

- (void)initOrSomething {
    UIButton *button = ...
    [button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchDown];
}

- (void)buttonPress:(UIButton *)button {
    button.frame = CGRectMake(0, 0, 100, 100);
}
如果将自己添加为目标,则应该能够在选择器中更改帧

- (IBAction)buttonPressed:(id)sender {
    CGRect f = self.button2.frame;
    f.origin.x += 10;
    f.size.width += 10; 
    self.button2.frame = f;
}
使用uicontrol事件触地添加此操作

希望这有助于

- (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;
    }

}

这基本上是在用户按住按钮的同时使按钮缩小。当手指抬起时,按钮的大小会回到原来的大小

在触摸屏上悬停不起作用,你必须触摸它。使用下面建议的触地事件。哦,对不起。我的意思是触摸它。但是像UIControlEventTouchDown而不是uicontrolEventTouchUpInside我想这可能就是你的意思:-)当然,我想我唯一要提到的是更改帧可能会(我没有测试,所以我不确定)导致你丢失事件,特别是如果你将帧变小。我没有足够的声誉。