gpt4 book ai didi

iphone - UIScrollView 可以适应水平缩放而不是垂直缩放吗? (如何)

转载 作者:行者123 更新时间:2023-12-01 22:44:52 25 4
gpt4 key购买 nike

我正在尝试制作一个时间轴 View ,将事件显示为可以按下以获取更多信息的 UIButton。

理想情况下,我想在 UIScrollView 上布置按钮,并允许它们水平拉伸(stretch)/收缩,但不能垂直拉伸(stretch)/收缩。

我想要完成的基本上等同于使用捏合手势来调整内容 View 的大小,并使用 ScrollView 左右移动 - 你能给我指出正确的方向,或者建议你如何完成是这样的吗?

我的第一个想法是使用 UIScrollView 来缩放 UIView subview ,并让 UIView subview 包含另一个 subview ,该 subview 不垂直调整大小,但仅在边界更改时水平调整,并禁用垂直滚动。也许我可以跳过这些 UIView subview 之一,只让一个做所有事情。感觉就像我在尝试将其拼凑在一起,就像 HTML 页面或包含所有这些容器的东西一样。

不确定我是否已经充分解释了其中的任何一个以希望得到答案,尽管如此,我们还是很感激您的帮助。

最佳答案

我通过创建 UIView 的子类实现了仅水平缩放,只要 UIScrollView 更改比例,它就会简单地覆盖 setTransform 并将 Y 比例设置为 1:

@interface DiagramStripView : UIView { }
@end

@implementation DiagramStripView

- (void)setTransform:(CGAffineTransform)newValue;
{
newValue.d = 1.0;
[super setTransform:newValue];
}

@end

正如类名所暗示的那样,我的 View 包含一系列图表,每个图表都是一个屏幕宽。当用户松开时, View Controller 将 View 的比例重置为 1 并将所有内容重新绘制为新比例:

- (void) scrollViewDidEndZooming:(UIScrollView *)scrollView 
withView:(UIView *)view atScale:(float)scale
{
diagramStripView.transform = CGAffineTransformIdentity;
[self redrawDiagrams:scale];
}

关于iphone - UIScrollView 可以适应水平缩放而不是垂直缩放吗? (如何),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3488220/

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