实现自定义 UIScrollView

Posted

技术标签:

【中文标题】实现自定义 UIScrollView【英文标题】:Implementing a custom UIScrollView 【发布时间】:2010-10-13 17:48:17 【问题描述】:

出于某种原因,我正在尝试实现一个自定义 UIView 来模仿 UIScrollView 的行为。问题是如何显示由contentOffset 属性表示的内容的正确部分?

我分析了UIScrollView,发现它没有采用任何中间子层或操纵边界和变换属性来应用偏移量。我已经重写了 UIView`` 的 drawRect: 方法如下,但它没有工作:

- (void)drawRect: (CGRect)rect 
  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextTranslateCTM(context, -content_offset_.x, -content_offset_.y);

所以我的问题是UIScrollView 如何显示其内容的正确部分?我应该覆盖图层的显示方法还是其他?任何建议,将不胜感激!并且请不要问“你为什么首先要做这样的事情?” :D

谢谢!

【问题讨论】:

【参考方案1】:

UIScrollView 改变它的边界(它移动原点)。

-drawRect: 被调用来绘制图层的内容并且不影响子图层。你什么都没画。

不过,我只想使用UIScrollView。你在做什么UIScrollView 没有?

【讨论】:

哦..你是对的。我已经对其进行了测试,我认为它并没有改变 bounds 属性,但我错了。我正在制作类似于内置照片应用程序的东西,但是另一个 UIScrollView 中的 UIScrollView 有时表现得非常笨拙,所以我想制作一个自定义的。感谢您的回答!

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

织梦cms如何实现自定义表单字段的查询

QT如何实现自定义下拉列表

自定义控件(仿PopupWindow篇)

自定义控件(仿PopupWindow篇)

iOS自定义表情的实现

freemarker实现自定义指令和自定义函数