gpt4 book ai didi

ios - UIButton 类似于 UIView 的自定义子类的行为

转载 作者:行者123 更新时间:2023-11-28 22:03:26 24 4
gpt4 key购买 nike

我有 UIView 的子类

@interface TBL_CardView : UIView

它内部有用于卡片图像的 UIImageView。

我需要按以下方式处理卡的触摸:

  1. 当我触摸(并仍然按住)TBL_CardView 时,我需要设置橙色 borderColor。
  2. 如果我仍然在 TBL_CardView 之上,我需要设置红色 borderColor。
  3. 如果我不在 TBL_CardView 之上,我移动了我的手指,因为我想取消触摸,然后 borderColor 被移除。

我知道如何处理 borderColor 的设置:

self.layer.borderColor = [UIColor redColor].CGColor;
self.layer.borderWidth = 3.0f;

但我不知道什么是最简单的实现细按钮行为的方法?
我应该把它做成按钮,还是使用 UIResponder 或其他东西?
每种情况的优缺点是什么?

最佳答案

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s", __PRETTY_FUNCTION__);

UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView: self];
BOOL isInside = [self pointInside: touchLocation withEvent: event];
if (isInside)
{
//if logic
NSLog(@"INSIDE");
}
else
{
//else logic
NSLog(@"OUTSIDE");
}
}

您可以查看这篇文章,了解有关如何实现类似按钮的行为以及如何响应 UIView 或子类上的触摸的信息。

Touch Event on UIView

然而,我通常自己做的是在我的 UIView 上放一个透明的(清晰的颜色,没有标题,不是 alpha = 0.0)UIButton 匹配它的大小并响应我需要的事件。检查它是否符合您的需求。

关于ios - UIButton 类似于 UIView 的自定义子类的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547738/

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