gpt4 book ai didi

ios - 为 UILabel 增加触摸手势区域

转载 作者:行者123 更新时间:2023-12-01 18:43:10 25 4
gpt4 key购买 nike

我有一个 UILabel,我附加了一个触摸、捏合和旋转手势。我遇到的问题是其中只有几个字符,这会使旋转/捏合/触摸变得困难。有没有一种方法可以为 UILabel 添加边距或在 UILabel 周围添加一些区域来触发旋转/捏合/触摸 Action 以使其更易于操作?

以下是该方法的示例:

- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer {
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
currentAction = TEXT_STRETCHING;
recognizer.scale = 1;
}

最佳答案

您的问题有多种解决方案:

  • 将手势添加到另一个更大的 View 。
  • 如果您的标签文本是
    居中您可以使标签本身更宽,外观将
    保持原样。
  • 您可以继承 UILabel 并覆盖 hitTest
    方法。这样可以增加手势识别的面积
    为您的自定义 View :

  • 自定义标签.m:
    @implementation CustomLabel: UILabel 

    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    CGRect bigRect = CGRectInset(self.bounds, -10, -10);
    return CGRectContainsPoint(bigRect, point);
    }

    @end

    您显然可以自定义 dx 和 dy 的插入值以满足您的需要。

    此处有关此方法的更多详细信息:
    https://developer.apple.com/reference/uikit/uiview/1622533-pointinside?language=objc

    Storyboard/xib

    设置 CustomLabel 类而不是 UILabel

    View Controller .m:

    保持原样。您的 handlePinch:方法刚刚好。

    附言也许坚持使用 UIButton 而不是 UILabel 会更好,但这种技术可能仍然有用。

    关于ios - 为 UILabel 增加触摸手势区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965127/

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