UIScrollView 内的 CPTXYGraph

Posted

技术标签:

【中文标题】UIScrollView 内的 CPTXYGraph【英文标题】:CPTXYGraph inside UIScrollView 【发布时间】:2012-03-22 14:17:43 【问题描述】:

当图形本身位于UIScrollView 内时,是否有人知道如何使轴固定在CPTXYGraph 上?

为了澄清,我有一个 CPTXYGraph 显示比当前屏幕更宽的数据,所以我将它放在一个带有水平滚动的 UIScrollView 中(我知道 userInteractionEnabled 属性 core-plot 暴露,但我需要保持UIScrollView 的加速和其他好处)。我需要将 Y 轴固定在屏幕左侧,我通常会在 UIScrollViewlayoutSubviews 方法中执行此操作。我的第一个猜测是只对与当前contentOffset 对应的CPTXYAxis 应用转换(考虑到它继承自CALayer),但这似乎没有效果。我也玩过orthogonalCoordinateDecimal 属性,但它看起来像是死路一条。

有没有人成功完成这项工作?

【问题讨论】:

【参考方案1】:

为了任何想要解决这个问题的人的利益,我的解决方案:

您可以使用CPTConstraints 来定位轴,所以我在我的UIScrollView 子类中做了以下操作:

- (void)layoutSubviews 
    [super layoutSubviews];

    CGFloat xOffset = (self.contentOffset.x >= 0 ? self.contentOffset.x : 0.0f);

    CPTXYGraph *graph = [self graph];
    CPTXYAxisSet *axisSet = (CPTXYAxisSet *)[graph axisSet];
    CPTXYAxis *yAxis = [axisSet yAxis];

    [yAxis setAxisConstraints:[CPTConstraints constraintWithLowerOffset:xOffset]];

此代码可以使用 CPTConstraints 的不同初始化程序重新用于所有固定轴位置。

【讨论】:

【参考方案2】:
[plotSpace setAllowsUserInteraction:YES];

【讨论】:

以上是关于UIScrollView 内的 CPTXYGraph的主要内容,如果未能解决你的问题,请参考以下文章

限制 UIScrollView 内的 UILabel 的高度

UIScrollview 内的 UIView 内的 UILabel 上的 UIGestureRecognizer

UIScrollview内的UIView内的UIButton,ARC问题

Swift - 通过点击 ScrollView 内的 ViewController 内的按钮来滚动 UIScrollView

UIScrollView 内的 CPTXYGraph

UIScrollView 内的 UIVIew 反弹回来