gpt4 book ai didi

iphone - UIButton TouchUpInside 触摸位置

转载 作者:行者123 更新时间:2023-12-03 18:15:06 25 4
gpt4 key购买 nike

所以我有一个很大的UIButton,它是一个UIButtonTypeCustom,并且为UIControlEventTouchUpInside调用按钮目标。我的问题是如何确定 UIButton 中发生触摸的位置。我需要此信息,以便我可以从触摸位置显示弹出窗口。这是我尝试过的:

UITouch *theTouch = [touches anyObject];
CGPoint where = [theTouch locationInView:self];
NSLog(@" touch at (%3.2f, %3.2f)", where.x, where.y);

以及各种其他迭代。按钮的目标方法通过 sender 从中获取信息:

    UIButton *button = sender;

那么我有什么办法可以使用类似的东西:button.touchUpLocation

我在网上查了一下,找不到类似的东西,所以提前致谢。

最佳答案

UITouch *theTouch = [touches anyObject];
CGPoint where = [theTouch locationInView:self];
NSLog(@" touch at (%3.2f, %3.2f)", where.x, where.y);

这是正确的想法,只不过这段代码可能位于 View Controller 的操作中,对吗?如果是这样,那么 self 指的是 View Controller 而不是按钮。您应该将指向按钮的指针传递到 -locationInView: 中。

这是一个经过测试的操作,您可以在 View Controller 中尝试:

- (IBAction)buttonPressed:(id)sender forEvent:(UIEvent*)event
{
UIView *button = (UIView *)sender;
UITouch *touch = [[event touchesForView:button] anyObject];
CGPoint location = [touch locationInView:button];
NSLog(@"Location in button: %f, %f", location.x, location.y);
}

关于iphone - UIButton TouchUpInside 触摸位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com