- 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/
如果我使用 NSUserDefaults 存储应用程序的设置,是否有任何方法可以使我的应用程序的设置“隐藏”,以免显示在 iPhone 上的常规设置应用程序中?我知道还有其他工具,例如 mySetti
我按照该网站的教程进行操作: http://theappleblog.com/2008/08/04/tutorial-build-a-simple-rss-reader-for-iphone/ 为了制
我通过 localisableString 和仅适用于 NSLocale 方法的不同 xib 更改 iPhone 的语言来完成本地化,但应用程序的要求是通过更改应用程序设置 View 中的语言来本地化
我试图弄清楚 iPhone 是否可以通过无线或蓝牙连接到另一台非 iPhone 设备,但发现了相互冲突的信息。我发现的大部分内容都是在 SDK 3.0 版本发布之前发现的,当时这肯定是不可能的。查看堆
This question already has answers here: Closed 7 years ago. Possible Duplicate: How to detect iPhone
当我在模拟器上运行我的应用程序时,每次都会生成白色的空白屏幕。但是当我在底部黑色 iPhone 按钮退出应用程序后,重新进入应用程序后 View 将可见。然后应用程序照常运行。 但是当我将它加载到我的
我的意思是两台 iPhone 设备应该通过蓝牙或 WiFi 连接,并且一台设备的 UI 应该扩展到另一台 iPhone 设备(不共享屏幕)。我们有办法在 iOS 中执行此操作吗? 最佳答案 Bump
如何通过宏检测设备型号?我使用过类似的东西,但模拟器上的结果总是 IS_IPHONE_5 #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInt
我目前有一个应用程序要求用户维护 VPN 隧道。加载时我检查 VPN 隧道是否可用。 我想知道是否有任何方法可以显示 UIAlertView,单击“确定”后,用户将进入 iPhone 主设置屏幕,以便
我正在开发一个 iPhone 客户端应用程序,它允许用户对各种服务进行评分。无需注册或登录。 要求是用户不能重复对服务进行评分(尽管可以更改其评分)。从目前的情况来看,该应用程序可以被删除、重新安装,
比如说,我点击一个 iphone 应用程序图标,启动时它将创建一个 .app 文件。那么是否可以从该应用程序调用另一个 iphone 应用程序。或者我们可以在该 .app 文件中执行一些操作,例如它将
真的有可能让iPhone静音模式独立于iPhone App吗? 这个应用程序"Talking Carl"让我很困惑。我的 iPhone 处于静音模式。每当我打开这个应用程序时。应用程序声音处于开启模式
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
如果我想编写一些自定义 iPhone 应用程序,但不一定通过 App Store 分发它们,是否可以在不加入 iPhone 开发者计划的情况下实现? 假设我只是想为自己编写一些小实用程序并将其放入我的
人们对 Unity 或 Torque Engine 等游戏引擎有何看法和/或体验?如果您是 iPhone 游戏开发新手,是否值得学习其中一种引擎?这些引擎生成的应用程序与使用 sdk 的 native
您能否在未安装 XCode 开发工具的计算机上分发 iPhone 应用程序以在 iPhone 模拟器中进行测试?可以直接在电脑上安装模拟器进行测试吗? 我有一组测试人员,他们不是开发人员,除了能够运行
我想在我的越狱设备上构建并安装我的应用程序,而无需支付 iPhone 开发者计划所需的 99 美元。我有 Rock 和 Cydia...最简单的方法是什么(如果可能的话)? 谢谢。 最佳答案 这是一个
我想测试一个网站,看看它如何与 iPhone 配合使用,但我没有 iPhone 或 iPod touch。有没有一种方法可以让我在不拥有网站的情况下测试网站的运行情况? 我真正想要的是修复 Stack
简单地说;我的 99 美元能给我带来什么我无法免费获得的东西? 好吧,好吧,听起来是个愚蠢的问题,但苹果网站对我来说并不清楚。 我的预感是,您可以在 99 岁时向应用程序商店提交应用程序,但您可以免费
我是一名注册的 iOS 开发人员。如何将我的 iPhone 应用程序转移到我的个人 iPhone? 最佳答案 用于测试?只需选择您的设备而不是模拟器即可。 关于iphone - 如何将我的 iPhon
我是一名优秀的程序员,十分优秀!