gpt4 book ai didi

iphone - UIImageView 上的多个按钮

转载 作者:行者123 更新时间:2023-11-28 19:20:39 24 4
gpt4 key购买 nike

我的 View 上有一个 UIImageView。该图像的某些部分,我想用作 UIButtons。但问题是,这些图像部分的形状并不规则。我还没有真正尝试过任何东西。我想到的直接解决方案是识别小图像帧并将自定义按钮放在该帧上。但是由于图像部分(按钮区域)不是规则形状,这个概念失败了。

如何在 UIImageView 上放置按钮,以便图像的特定部分(非规则形状)响应某些操作。

考虑下图:

enter image description here

我想在黑色的中心圆圈处放置一个按钮。我想将按钮放置在两条垂直线之间,以便每个按钮的四分之一都可以通过不同的操作进行点击。所以,我总共有 5 个按钮。

最佳答案

我可以想到 2 个选项:

  1. 第一个

    -(CGFloat)percentFromHeight:(CGFloat)percent{
    return (CGRectGetHeight(self.bounds)/100)*percent;
    }

    -(CGFloat)percentFromWidth:(CGFloat)percent{
    return (CGRectGetWidth(self.bounds)/100)*percent;
    }

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self];

    //first check if the tup is in the center
    if(currentTouchPosition.x > [view percentFromWidth:45] && currentTouchPosition.x < [view percentFromWidth:55] && currentTouchPosition.y > [view percentFromWidth:45] && currentTouchPosition.y < [view percentFromWidth:55]){
    //the tup is in the center
    //Do your thing
    return;

    }

    //if this is not in the center, check other options
    if(currentTouchPosition.x > [view percentFromWidth:50]){
    if(currentTouchPosition.y > [view percentFromHeight:50]{
    //this is the bottom left side
    else{
    //this is the top left side
    }

    }else if(currentTouchPosition.x < [view percentFromWidth:50]{
    if(currentTouchPosition.y > [view percentFromHeight:50]{
    //this is the bottom right side
    else{
    //this is the top right side
    }
    }
  2. 第二 -

    根据您的喜好子类化 UIButton/UIImage 并使用 UIBezierPath 在 drawRect: 中绘制自定义形状,然后使用 [UIBezierPath containsPoint] 检查这些是否在路径内 View /按钮。

关于iphone - UIImageView 上的多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9091763/

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