UIScrollView 内的 CPTXYGraph
Posted
技术标签:
【中文标题】UIScrollView 内的 CPTXYGraph【英文标题】:CPTXYGraph inside UIScrollView 【发布时间】:2012-03-22 14:17:43 【问题描述】:当图形本身位于UIScrollView
内时,是否有人知道如何使轴固定在CPTXYGraph
上?
为了澄清,我有一个 CPTXYGraph
显示比当前屏幕更宽的数据,所以我将它放在一个带有水平滚动的 UIScrollView
中(我知道 userInteractionEnabled
属性 core-plot 暴露,但我需要保持UIScrollView
的加速和其他好处)。我需要将 Y 轴固定在屏幕左侧,我通常会在 UIScrollView
的 layoutSubviews
方法中执行此操作。我的第一个猜测是只对与当前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