gpt4 book ai didi

ios - 将 UIView 移动到 UITableView 之上 - 触摸顶部 UIView 仍会选择表格行

转载 作者:可可西里 更新时间:2023-11-01 03:35:09 27 4
gpt4 key购买 nike

我有一个包含三个容器的 UIView

Container A - contains a UITableView
Container B - contains Container C and Container O
Container C - contains a UITableView
* - touch event
@ - touch event

----------------------
| | |
| ---*| B |
| --- | |
| -A- | ----------- |
| --- ||@----C---- | |
| | ----------- |
----------------------

在我移动容器 B 的框架时发生了一个事件(并且我在 B 的右侧显示了一个 View (标记为 O),这并不重要)。现在容器 B 与容器 A 重叠

O - Other view (unimportant)
$ - original location of touch @

----------------------
| | | |
| --|* B | |
| --| | |
| -A|------------ |O|
| --||@-$--C----| | |
| |------------ | |
----------------------

但是现在,当我尝试通过触摸行的左边缘 (@) 在容器 C 的 UITableView 中选择一行时,容器 A 的 UITableView 正在注册触摸。或者,即使我触摸表格 (*) 上方的 View ,A 中的相应行也会被选中。

我可以通过更改容器 A 的 UITableView 的宽度来解决部分问题。但是我仍然遇到问题,如果我触摸表 C (@),C 的行不会被选中。就像表 C 的开头位于旧位置 ($)。

那么我该怎么做才能在新的@位置点击以在 C 中选择正确的行?

=======

编辑一些代码:

这是我在容器 B 中编写的代码。它是 B 的帧的非常直接的动画。 self.view 是容器 B 的 UIView。

所有 View 都通过 Storyboard 显示在屏幕上(“其他”容器被隐藏)。其他容器是B的 subview 。

// this code basically aligns the "other" container to the right/"offscreen" of 
// Container B. Yes extending beyond the frame of B, but this part works fine
CGRect otherContainerFrame = self.otherContainerView.frame;
otherContainerFrame.origin.x = CGRectGetMaxX(self.view.frame);
[self.otherContainerView setFrame:otherContainerFrame];
[self.otherContainerView setHidden:NO];

// I'm going move Container B by the width of the "other" view
float offset = CGRectGetWidth(self.otherContainerView.frame);

CGRect frame = self.view.frame;
frame.origin.x -= offset;
[UIView animateWithDuration:.35
animations:^{
[self.view setFrame:frame];
}
];

请让我知道您想查看的其他代码。

最佳答案

嗯...不确定这是否适用于您的情况,但请尝试在容纳所有其他容器的更大容器中管理您的动画。

我的意思是,创建一个包含 A、B、O 及其 subview 的容器 Z,并尝试根据 Z 为 B 的位置设置动画,检查 B 是否在 A 的前面。

关于ios - 将 UIView 移动到 UITableView 之上 - 触摸顶部 UIView 仍会选择表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18090110/

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