gpt4 book ai didi

iphone - 如何在点击时更改 UIView 的样式?

转载 作者:可可西里 更新时间:2023-11-01 05:39:11 25 4
gpt4 key购买 nike

我正在使用以下代码使不同的 UIView 可点击(它们不是从 UIControl 继承的):

UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(userTappedOnLink:)];
[labelView setUserInteractionEnabled:YES];
[labelView addGestureRecognizer:gesture];

但我也想在突出显示时更改样式。我该怎么做?

最佳答案

将 UILongPressGestureRecognizer 而不是 UITapGestureRecognizer 附加到父 View ,并根据您的喜好设置它的属性。跟踪和响应选择的方法是以适当的方式实现 userTappedOnLink 方法。当手势识别器被激活并且你通过跟踪识别器状态知道发生了什么时,这个方法将在短时间内被调用很多次。

实现 UIView 子类并创建方法,例如选择和取消选择,并为每个方法自定义 View 属性。然后只需找到要选择或取消选择哪个 UIView 子类,这很容易通过 UIGestureRecognizer 方法返回父 View 中的点并遍历它的 subview ,同时检查触摸点是否在特定 subview 框架内。

- (IBAction)userTappedOnLink:(UIGestureRecognizer*)sender
{

switch (sender.state)
{
case UIGestureRecognizerStateBegan:
{

CGPoint touchPoint = [sender locationInView:self.parentView];
for (UIView *subView in [self.parentView subViews)
{
if (CGRectContainsPoint(subView.frame, tapPoint))
{
self.activeSubView = self.subview;
break;
}
}
[self.activeSubView select];

case UIGestureRecognizerStateChanged:[self.activeSubView doNothing];; break;
case UIGestureRecognizerStateEnded:[self.activeSubView deSelect]; self.activeSubView = nil; break;
}
}

关于iphone - 如何在点击时更改 UIView 的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006851/

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