0

我在 Smalltalk 中编写 RSSReader,所以我有两个模型类:RSSModel(标题、条目)和 EntryModel(标题、图像、内容、日期)

我有 EntryView 列表(从 UI.View 继承)现在我有 RSSView 并且我的 displayOn 方法将垂直显示条目,每个条目之间有间隙:

    | dy iView gap |
        gap := 5.
        dy := 0.
        1 to: model entries size
            do: 
                [:i |
                iView := EntryView model: (model entries at: i).
                iView displayOn: aGC at: 0 @ dy.
                dy := dy + 89 + gap]

结果是:

结果

我不确定我是否这样做正确,所以如果您有更好的显示 RSSView 解决方案,请告诉我。

问题:

  1. 如何获得入口高度?现在我写dy:=dy+89+gap了 89 是硬编码的入口高度。
  2. 如何启用滚动条来滚动窗口中的条目?
4

1 回答 1

1

如何获得入口的高度?采用:

"entry bounds height"

如何启用滚动条?

为了回答这个问题,我首先要指出的是,显示 EntryView 的方式并不是最好的方式。您想创建一个自定义控件,就像我在您的其他问题How to create a window in smalltalk 中解释的那样。您可以为视图使用 CompositeView,并使用 add:at: 将每个 EntryView 添加到组合中。

完成后,您可以转到视图的 UIPainter 属性编辑器中的详细信息选项卡并打开垂直滚动条。

于 2012-11-09T23:09:26.623 回答