2011-04-15 57 views
0

甚至不知道如何精确地说出这个问题,但这里是本质上的问题。使用皮肤控件创建iPhone屏幕

我有一个我开发的Android应用程序。我使用绘图元素基本上为文本控件,布局和按钮创建自定义背景,以创建一个不错的可缩放UI。

这里是它的照片:

https://ssl.gstatic.com/android/market/com.pacemaker.android/ss-0-320-480-160-0-b25671ad8a0f8862993fb6ac28db80618c36853e

其他位置的屏幕截图,以及:

https://market.android.com/details?id=com.pacemaker.android&feature=search_result

我想要做的iPhone版本,同样的事情,但我不知道哪里可以开始。看起来相同的方法不会奏效,因为没有办法将iPhone控件的背景设置为基于定制矢量的图像?

什么是一个iPhone应用程序做到这一点的最好方法是什么?

一直在做一些研究,我看到了工具不透明度,但我仍然不确定它是如何调用在一起的。

例如:在我的应用程序中标题为“PaceMaker”的标题栏将如何成为在iPhone中复制的最佳方式。

我想确保它扩展因此它适用于3GS和iPhone 4S。

+0

沟这个皮肤的概念。 iPhone为所有应用程序提供了一致的外观和感觉的本地控件。这不仅对苹果来说很重要,对iPhone用户来说也很重要。请*强烈*考虑利用他们。它不仅会让用户更快乐,而且会使开发变得更加轻松。很少有用户会同时拥有iPhone和Android,因此完全匹配它们并不像您想象的那么相关。 – 2011-04-15 06:57:18

回答

2

我想我找到了正确的解决这个问题。

忽略问题并选择使用标准控件的答案并不是我所能接受的,因为我试图为我的应用程序跨平台和共同体验建立一种感觉。

我最终做的是扩展UIViews来创建具有正确阴影和透明度的面板,并绘制了我想要的边框。

我扩展了UIView以创建一个圆角面板和一个有边框的面板。 我简单地覆盖drawRect方法,并使用Quartz绘图API绘制我的形状和边框,并使用渐变填充以获得所需的效果。

然后我可以使用UIView控件并将它们拖到UI上。我只是将UIView控件更改为我的类类型,一切正常。

0

首先我觉得你不必重复你的Android界面像素到像素到iOS的界面。这两个平台都有不同的用户使用期限。人们习惯于并等待与此平台上的其他应用程序熟悉的界面。最好的办法知道苹果的客户从你等待^)是读取苹果人机界面指南

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html

,让我们来谈谈“标题栏”。在我的应用程序中我自定义导航栏。我只是从我的项目中复制一些代码给你一些出发点。这是它的外观 - http://macsoj.wordpress.com/2011/01/28/astrofriends/

我通过创建UINavigationBar的新类别中更改导航栏背景,我的自定义图像 - 和压倒一切的drawRect方法,以便

@interface UINavigationBar (TransparentAdditions) 
@end 
@implementation UINavigationBar (TransparentAdditions) 
- (void)drawRect:(CGRect)rect { 
     UIImage *image = [UIImage imageNamed: @"my_custom_background.png"]; 
     [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 

,现在我写的自定义标题

CGRect frame = CGRectMake(0, 0, 320, 44); 
UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease]; 
label.backgroundColor = [UIColor clearColor]; 
label.font = [UIFont fontWithName:@"MarkerFelt-Thin" size:20.0]; 
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; 
label.textAlignment = UITextAlignmentCenter; 
label.textColor = [UIColor whiteColor]; 
self.navigationItem.titleView = label; 
label.text = @"Friends"; 

我希望它帮助)

0

您可以简单地设置此导航栏的色调颜色.......这将改变您的导航栏的颜色,你可以把t也可以分机。