1

我在java平台上开发了游戏动物园管理员。现在我需要让它在 ios 上运行,但是我不熟悉 xcode 和 objc。UIView我在使用and时遇到了一些问题UIImageview。假设我们有 5 种类型的 8*8 图标(图像),我们更改两个相邻图标,并且每当 3 个或更多图标在水平或垂直线上相同时,它们将被消除并创建新图标以替换以前的位置。要在java中实现它,我只需要检查条件并删除那些消除的图标并绘制新的图标(全部根据坐标)然后重新绘制JPanel。但是我将如何在 ios 中实现它?不是说消除过程,我什至不知道如何对齐UIView. 起初我想可能UIImageview在一个背景上使用然后 addSubviewUIView. 但是如果这样的话,会有64个子视图,那就一团糟了。我对 xcode 和 objc 很陌生,我只有 2 周的时间来完成这项任务。有人可以帮我解决我的问题吗?非常感谢!!

4

2 回答 2

0

从我收集到的信息来看,在 Java 中,您只是在 JPanels 的paintComponent 中绘制了图标?

好吧,在这种情况下,您可以完全模拟。在屏幕上放置一个 uiview,用作您的 JPanel/绘图画布。在 drawRect 中进行绘图的方式与在 java 中相同

@interface CustomView : UIView @end

@implementation CustomView

- (void)drawRect:(CGRect)dirtyRect {
    [[UIColor redColor] set];
    for(int ix = 0; ix < ITEMS_PER_ROW; ix++ ) {
        for(int iy = 0; iy < ITEMS_PER_COLUMN; iy++) {
            //draw item at ix and iy
            CGPoint pt = CGPointMake();
            CGRect r = CGRectMake(ix*5;iy*5, 5, 5);
            CGRectFill(r);
        }
    }
}

@end

*内联输入,不保证^^


也就是说,我会选择 CALayers

不是绘制它而是使用 64 个子层.. 也许不是 64 个......也许你可以将它分组一点 => 然后你会受益于隐式动画

于 2012-11-17T10:27:21.800 回答
0

我只是没有看到混乱。是的,你最终会在你的背景上拥有 64 个子视图UIView

如果它对您来说更容易或更合乎逻辑,那么您可以创建和定位UIImageViews唯一一次,然后只需更改它们的UIImage. UIImage保存图标本身的 只是一段UIImageView时间的属性,它UIImageView是视图层次结构的一部分,具有坐标和大小或框架等。

如果你真的对 64 个单独的视图对象很感兴趣:根据你的逻辑在 java 端的工作方式,它可能看起来更合乎逻辑,因此你更容易使用核心数据只绘制一个图像。该图像将由 8x8 图标组成,并且会在每次更改时重新绘制。然后,您UIImageView只需填写所有底层证券UIView。(严格来说,在这种情况下可能不再需要底层 UIView 了,因为您的UIImageViewcoud 充当self.view视图控制器的对象。但我仍然会选择 UIView 只是为了一致地应用通常的模式。)

但是,如果我是你,我会选择一个“修复”网格UIImageViews并相应地交换他们的UIImage对象。

于 2012-11-17T11:32:55.170 回答