Преобразование тем и шаблонов xcode target c в mono/xamarin

Я купил несколько шаблонов в 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

Спасибо.


person Saxman    schedule 24.02.2013    source источник
comment
Можете ли вы как-нибудь опубликовать, как эти темы настроены? Если это в основном файлы изображений, их должно быть легко использовать в MonoTouch.   -  person jonathanpeppers    schedule 28.02.2013
comment
@jonathanpeppersless - я не могу опубликовать шаблон, который я купил, но у них есть бесплатный шаблон под названием Ocean, который по макету / структуре точно такой же, как тот, который я купил. Вы можете скачать шаблон отсюда emitymeapps.us1.list- manage.com/subscribe/   -  person Saxman    schedule 01.03.2013


Ответы (1)


Хорошо, если вы посмотрите в файле 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.

person jonathanpeppers    schedule 01.03.2013
comment
спасибо за инструкцию, я посмотрю и посмотрю, смогу ли я преобразовать их в C #! - person Saxman; 05.03.2013
comment
Вам удалось его преобразовать? Я борюсь с большим количеством кода в папке /library и /theme... У некоторых из них нет тех же методов/классов в Xamarin.iOS... Я тоже купил тему, но остался с ней... - person Gutemberg Ribeiro; 17.10.2013
comment
Вы разместили вопрос о своей проблеме? Дайте некоторые подробности в новом вопросе. Я постоянно конвертирую образцы Obj-C в C#, обычно отсутствуют только неясные или новые API. - person jonathanpeppers; 18.10.2013