gpt4 book ai didi

ios - 我们可以从 ios 中的 ScrollView 中获取触摸的 subview 属性吗

转载 作者:行者123 更新时间:2023-11-29 10:56:07 26 4
gpt4 key购买 nike

我已将 20 个 subview 逐行添加到 scrollview

yPos=0;
for (int i=0; i<24; i++) {

UIView *timeView=[[UIView alloc]initWithFrame:CGRectMake(71, yPos, 909, 60)];
timeView.userInteractionEnabled=TRUE;
timeView.exclusiveTouch=YES;
timeView.tag=i;
NSLog(@"sub vieww tag=:%d",timeView.tag);
timeView.backgroundColor=[UIColor whiteColor];
UILabel *lbltime=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 70, 60)];
lbltime.text=@"VIEW HERE";
lbltime.textColor=[UIColor grayColor];
// [timeView addSubview:lbltime];
[scrlView addSubview:timeView];

yPos=yPos+61;
}

现在,每当我点击一个 subview 时,我都不会获得点击的 subview 属性。

喜欢坐标。它正在给父 View 坐标

我将 subview UserInteractionEnabled 启用为是。

谁能告诉我如何获取点击的 subview 坐标和标签值?

最佳答案

不要从 UIScrollView 继承子类,这正是有手势识别器的原因。此外,请勿向每个 View 添加单独的手势识别器。

向您的 ScrollView 添加一个手势识别器,当它被点击时使用触摸的 x,y 值来计算哪个 View 被点击。您需要做一个小计算:(点击的 y 值 + UIScrollView y 偏移量)/60。60是每个 View 的高度。这应该返回被点击 View 的索引。

编辑:

代码示例:

- (void)viewTapped:(UIGestureRecognizer*)recognizer
{
CGPoint coords = [recognizer locationInView:recognizer.view];
int clickedViewIndex = (self.offset.y + coords.y) / 60;

// now clickedViewIndex contains the index of the clicked view
}

关于ios - 我们可以从 ios 中的 ScrollView 中获取触摸的 subview 属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350795/

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