- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要创建一种算法来布局一些分层数据,但以前从未做过这种事情,并且需要一些广泛的技巧。
基本上,我需要重新创建此图(使用动态数据):
diagram http://dl.dropbox.com/u/15126868/diagram.png
bigger
我大部分都没有问题,但是需要两点帮助:
我该如何编写布局算法?
我应该为所有光盘使用UIView子类还是使用石英(我需要交互)
任何建议最欢迎。我不需要太多细节。
更详细一点:
我目前在想应该使用UIView子类和layoutSubviews。麻烦的是,在开始放置它们之前,我需要知道所有节点的大小(至少是大致大小)。然后,由于定位涉及旋转,因此我可能需要再次调整子位置-并且直到进行任何旋转后才能添加标签。
其他考虑因素似乎是:显示区域是矩形,而不是正方形;我不能从页面上溢出;并且我需要为光盘的大小制作动画。
任何指针都很好,谢谢。
最佳答案
这种事情非常困难。
有趣的是,这里可能主要的实际初始约束是字体的大小。
在给出的示例中:观察到他们可以选择一个稍大一些的SCPT **(也许大10%-15%)或更小一个它仍然可以工作。他们对SCPT做出了美学决定。
空白对于设计至关重要。他们特别的平面设计师碰巧喜欢您所看到的空白感。但是,使用较小的SCTP绝不是“错”的。此外,观察他们可能使用了更大的SCPT ... IF ...他们在版式上使用了较小的磅值。
请注意,无论如何,您根本无法在iPad(或Fone4)上显示这么小的文字。
因此,您必须立即决定类型的显示方式,弹出窗口,音频或其他内容。即使是白色(“光盘上”类型)也会给您带来麻烦。
您必须先在iPad上使用photoshop进行大量测试,然后才能进行算法。所以纯粹是为了它的价值...
这是我个人将执行此类操作的方式。总的来说,我会尝试做一个松散的算法,然后重试直到找到满意的结果。
恕我直言,基于以前做这种事情的基础:这个问题很难通过一些特别聪明的启发式方法一劳永逸地解决。由于没有一种智能资产启发法可以节省一天的时间,因此我将这样做:
1)计算要显示的总兆数。 (示例图像中的总数大约为2.5)
2)猜一个SCPT值开始。例如,根据我们上面在您的问题内所看到的屏幕尺寸的实际图像得出的“ 18”呢?
3)将大个(太阳)放在死点,中间的(行星)-只需选择一个非常简单的试探法,从左到右从最大到最小逆时针旋转(不要尝试在那部分问题上要比那更聪明-实际上这可能是一个巨大的研究项目,纯粹是靠它自己完成的。..并且对小问题(月球)也可以做到。
4)对于行星和卫星之间的棍棒-采用简单的解决方案(例如“总是0.5厘米”!),就是这样。有了AI,您就可以减少损失..到处都是! :)将卫星固定在行星上,而不必理会它们。
5)现在,困难的部分..对它们进行某种启发,以均衡地平衡您到目前为止所拥有的。将颜色视为质量,将颜色视为无质量,然后将“太阳”移动到平衡。 (很明显,例如,如果您遵循3中提到的“行星”布局,则可能会向下移动。)也可能将所有行星/月球系统内外移动以尝试平衡。
6)接下来的迭代。查看结果并决定是否喜欢!返回(2)并选择一个新值。 (例如“ 16!”)
(7)这里有两种可能的结果。可能是在开发过程中,SCPT始终具有一种神奇的价值。也许是“ 14.3”或“ 18.2”等等。如果您发现这样的价值,请不要告诉任何人。保留它作为您自己的秘密信息!!!!用它为客户赢得的一切收益。相反,更困难的是,您可能会发现每次都需要一个不同的值。在这种情况下:您的AI必须自己遍历值,直到找到自己喜欢的值。 (例如,通过确定您的所有标签是否适合..以及诸如“它们是否在触摸”“全部在屏幕上”之类的明显内容)。
无论如何,FWIW(也许什么也没有)就是我要做的-基于对SCPT的第一次猜测的迭代方法。
顺便说一句:您可能希望通过这种信息展示来购买和研究经典而辉煌的书!!!每个人都应该有一个副本。
图夫特的定量信息的视觉展示
爱德华·塔夫特(Edward R.
书号0961392142
关于布局图像的机制。您应该使用石英或任何其他低级绘图-不用担心UIViews之类的东西。您肯定应该将逻辑与绘图层完全分开,因此(即使您确实要更改为UIViews,OpenGLES或其他任何东西)也只需更改几行代码。
希望它能有所帮助。
笔记...
** SCPT ..平方厘米/万亿
跟进...
“为了保持逻辑上的分离,您会使用经理型模式吗?”
老实说:如果我这样做的话,我只会启动一个全新的应用程序,纯粹是为了“研究”获得这一部分,这一挑战,正确工作。在那个应用程序中(说实话!),我将尽一切努力以任何整洁的方式做任何事情! :-/全球各地! :)不幸的是,我一次只能想到一件事,所以在那个阶段,我只会考虑算法本身。
我相信,一旦您解决了这个问题,就可以在一个更大的项目中实现它了……真的,FWIW,如果是我,我只会使其成为一个类(比方说AmazingClass),没有比这更复杂的了那。就我个人而言,我会将数据分别放置在某个地方(无论是在数据库中还是在数组中或其他任何东西中),而且我只会让AmazingClass负责获取数据。 (我的想法-您永远不知道自己到底会需要什么数据,以及何时需要在AmazingClass的过程中的什么时候。因此,只需放弃并让AmazingClass随需使用它。)
如果您熟悉这些听起来不错的经理模式,是的,为什么不呢!简而言之,我会尽可能地将其分开。我还不足以说出做到这一点的最佳方法-只是将其完全分开。对不起,我帮不上忙。
关于iphone - 有关为图创建自定义 View 布局的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431610/
我在尝试从子文件夹调用 View 时遇到一些错误。首先,这东西能用 Route::get('/', function() { return View::make('sample'); }); 但是当我
我有另一个 View 设置,并准备好等待其viewmodel。我的RelayCommand到达我的“当前” View 模型。从当前的 View 模型显示新 View 的最佳方法是什么? 我一直在阅读,
我有一个 bigquery View ,我想与数据分析师共享,以便他们可以通过 Data Studio 访问其数据。此共享 View 对另一个数据集中的私有(private) View 进行查询,而私
我有 3 个 View ,并希望将它们集成到一个 View 中,以便它们成为这一 View 中的子文件夹。 我怎样才能做到这一点?还是我必须制作一个 View ,然后再次手动添加和配置这些 View
我在沙发数据库中有一些文档,这些文档的字段是不同关联文档的ID数组: { associatedAssets: ["4c67f6241f4a0efb7dc2abc24a004dfe", "270f
我正在开发一个小实用程序 View ,它将嵌入到我们的几个应用程序中。它将位于一个公共(public)图书馆中。 我应该将其作为 ViewModel 以及默认的 View 实现公开,还是作为具有固定
由于我的某些 View 具有相似的功能,因此我希望能够与每个 View 共享相同的 View 模型。我的想法是将 token 传递给viewmodel的构造函数,但这将导致代码中出现许多if和else
我有一个目标 View (蓝色 View 和红色 View 用于左上角位置)。我试图用手指移动这个 View 。如果 View 不旋转,一切都很好。 但当我旋转 View 并移动时,第一次就很好了。但
我收到这个错误, "Attempt to invoke virtual method 'android.view.View android.view.View.getRootView()' on a
我将发布我目前拥有的源代码,然后解释我的问题。 这是我希望过渡发生的窗口 这是关联的 View 模型 public class MainViewModel {
我正在尝试找出我遇到的错误。最初,我的同事只是使用 将 View 添加到 subview 中 [self.view addSubview:someController.view]; 来自当前ViewC
我是 MVVM 的新手,需要一些帮助。 我的应用程序由许多不同的窗口组成,这些窗口显示允许用户编辑业务层中的数据的控件。 目前,每次用户打开这些窗口之一的新实例时,都会从头开始创建一个 ViewMod
我一直在寻找与我类似的问题以找到解决方案,但我真的找不到类似的东西。 我试图使用 asynctask 类从解析中下载帖子数组,在获取帖子后,它应该在我的页面中设置帖子数组,并执行 setAdapter
这个问题在这里已经有了答案: What is local/remote and no-interface view in EJB? (2 个答案) 关闭 9 年前。 我以前理解它的意思是“接口(in
希望这不会太困惑。 我有一个主视图 Controller ( MainView ),在 View 底部有一个堆栈 View ,在堆栈 View 中我有三个 View 。在一个 View 中(我们称之为
我一直在想这个问题,我真的不知道如何正确地将一个 View Controller 管理的 View 添加到另一个 View Controller 的 View 中。 这不起作用,因为 View 没有完
在明显的情况下,我必须将大量文件从一个 View 复制到另一个 View 。要复制的文件名将作为输入给出。有什么想法可以通过脚本实现吗? 谢谢,日语 最佳答案 最简单的方法是使用 clearfsimp
我正在使用完整日历。这里我的问题是,当单击上一个按钮或下一个按钮单击功能时,如何找到月 View 、周 View 或日 View 格式的完整日历。这里正在调用下一个和上一个按钮的自定义代码。因为使用这
我对这两者感到困惑,并试图找出差异,但没有得到我正在寻找的特定内容。 在哪里使用索引 View 而不是普通 View 。 它们之间的一些重要区别。 最佳答案 关键的区别在于物化 View 很好,物化了
我在一个 xib 中有一个 CustomView,在两个不同的 xib 中有两个不同的 View 。我想在一个 CustomeView 中依次显示这两个 View 。我有一个 NSView 对象,它连
我是一名优秀的程序员,十分优秀!