【问题标题】:CPTXYGraph inside UIScrollViewUIScrollView 内的 CPTXYGraph
【发布时间】:2012-03-22 14:17:43
【问题描述】:
当图形本身位于UIScrollView 内时,是否有人知道如何使轴固定在CPTXYGraph 上?
为了澄清,我有一个 CPTXYGraph 显示比当前屏幕更宽的数据,所以我将它放在一个带有水平滚动的 UIScrollView 中(我知道 userInteractionEnabled 属性 core-plot 暴露,但我需要保持UIScrollView 的加速和其他好处)。我需要将 Y 轴固定在屏幕左侧,我通常会在 UIScrollView 的 layoutSubviews 方法中执行此操作。我的第一个猜测是只对与当前contentOffset 对应的CPTXYAxis 应用转换(考虑到它继承自CALayer),但这似乎没有效果。我也玩过orthogonalCoordinateDecimal 属性,但它看起来像是死路一条。
有没有人成功完成这项工作?
【问题讨论】:
标签:
ios
ipad
uiscrollview
core-plot
【解决方案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];