1

我从 App Design Vault 购买了一些模板,它们位于 XCode/Objective C 中。我想在 Xamarin Studio/MonoTouch 项目中使用它们,如何转换它们以便可以像转换某些主题一样使用它们在Xamarin 的组件商店中?

App Design Vault 模板的结构/布局示例可以从他们的网站下载,他们有一个名为 Ocean 的免费模板:http ://emitymeapps.us1.list-manage.com/subscribe/post?u=088ecce4e59f7a30e9aa859af&id=e59abf1e54

谢谢。

4

1 回答 1

2

好的,如果你查看他们示例项目的 AppDelegate.m 文件,有这样的函数:

-(void)customizeiPhoneTheme
{
    [[UIApplication sharedApplication] 
     setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];

    UIImage *navBarImage = [[UIImage tallImageNamed:@"menubar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 15, 5, 15)];

    [[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];


    UIImage *barButton = [[UIImage tallImageNamed:@"menubar-button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)];

    [[UIBarButtonItem appearance] setBackgroundImage:barButton forState:UIControlStateNormal 
                                          barMetrics:UIBarMetricsDefault];

    UIImage *backButton = [[UIImage tallImageNamed:@"back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 14, 0, 4)];

    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal 
                                                    barMetrics:UIBarMetricsDefault];


    UIImage *minImage = [UIImage tallImageNamed:@"ipad-slider-fill"];
    UIImage *maxImage = [UIImage tallImageNamed:@"ipad-slider-track.png"];
    UIImage *thumbImage = [UIImage tallImageNamed:@"ipad-slider-handle.png"];

    [[UISlider appearance] setMaximumTrackImage:maxImage forState:UIControlStateNormal];
    [[UISlider appearance] setMinimumTrackImage:minImage forState:UIControlStateNormal];
    [[UISlider appearance] setThumbImage:thumbImage forState:UIControlStateNormal];
    [[UISlider appearance] setThumbImage:thumbImage forState:UIControlStateHighlighted];

    UIImage* tabBarBackground = [UIImage tallImageNamed:@"tabbar.png"];
    [[UITabBar appearance] setBackgroundImage:tabBarBackground];


    [[UITabBar appearance] setSelectionIndicatorImage:[UIImage tallImageNamed:@"tabbar-active.png"]];

}

您基本上必须将此代码移植到 MonoTouch 并将它们的图像添加到您的项目中。但这应该很容易,这里有几行翻译成 C# 的代码:

 UIImage navBarImage = UIImage.FromFile("menubar.png").CreateResiableImage(new UIEdgeInsets(5, 15, 5, 15));

 UINavigationBar.Appearance.SetBackgroundImage(navBarImage, UIBarMetrics.Default);

检查错误,我这样做了。我也不确定是什么[UIImage tallImageNamed],它必须是他们自己的扩展。我认为你应该只使用UIImage.FromFile.

于 2013-03-01T13:12:48.527 回答