2013-03-12 93 views
1

我想在我的Xamarin for iOS項目中使用iOS庫iCarousel。我在XCode中創建了靜態庫並將其添加到Xamarin iOS綁定項目中。試圖從lib.a文件中定義輸出。但是我對Objective-C沒有任何經驗,所以我在iOS綁定項目(可以在我的目標項目中用作dll)中聲明導出時遇到了困難。 我試圖使用monotouch-binding-generator來生成所需的聲明,但編譯iOS綁定項目後出現很多錯誤。這是我在C#上的聲明。如何在Xamarin.iOS項目中使用iCarousel

[BaseType (typeof (UIView))] 
interface iCarousel { 
    [Export ("id<iCarouselDelegate>")] 
    IBOutlet Id<iCarouselDelegate> { get; set; } 

    [Export ("type")] 
    iCarouselType Type { get; set; } 

    [Export ("perspective")] 
    float Perspective { get; set; } 

    [Export ("decelerationRate")] 
    float DecelerationRate { get; set; } 

    [Export ("scrollSpeed")] 
    float ScrollSpeed { get; set; } 

    [Export ("bounceDistance")] 
    float BounceDistance { get; set; } 

    [Export ("scrollEnabled")] 
    bool ScrollEnabled { get; set; } 

    [Export ("bounces")] 
    bool Bounces { get; set; } 

    [Export ("scrollOffset")] 
    float ScrollOffset { get; set; } 

    [Export ("offsetMultiplier")] 
    float OffsetMultiplier { get; } 

    [Export ("contentOffset")] 
    SizeF ContentOffset { get; set; } 

    [Export ("viewpointOffset")] 
    SizeF ViewpointOffset { get; set; } 

    [Export ("numberOfItems")] 
    int NumberOfItems { get; } 

    [Export ("numberOfPlaceholders")] 
    int NumberOfPlaceholders { get; } 

    [Export ("currentItemIndex")] 
    int CurrentItemIndex { get; set; } 

    [Export ("currentItemView")] 
    UIView CurrentItemView { get; } 

    [Export ("indexesForVisibleItems")] 
    NSArray IndexesForVisibleItems { get; } 

    [Export ("numberOfVisibleItems")] 
    int NumberOfVisibleItems { get; } 

    [Export ("visibleItemViews")] 
    NSArray VisibleItemViews { get; } 

    [Export ("itemWidth")] 
    float ItemWidth { get; } 

    [Export ("contentView")] 
    UIView ContentView { get; } 

    [Export ("toggle")] 
    float Toggle { get; } 

    [Export ("stopAtItemBoundary")] 
    bool StopAtItemBoundary { get; set; } 

    [Export ("scrollToItemBoundary")] 
    bool ScrollToItemBoundary { get; set; } 

    [Export ("useDisplayLink")] 
    bool UseDisplayLink { get; set; } 

    [Export ("vertical")] 
    bool Vertical { get; set; } 

    [Export ("ignorePerpendicularSwipes")] 
    bool IgnorePerpendicularSwipes { get; set; } 

    [Export ("centerItemWhenSelected")] 
    bool CenterItemWhenSelected { get; set; } 

    [Export ("IBOutletid<iCarouselDataSource>dataSource")] 
    nonatomic, ah_weak IBOutletid<iCarouselDataSource>dataSource(); 

    [Export ("scrollByOffset:duration:")] 
    void ScrollByOffsetduration (float offset, double duration); 

    [Export ("scrollToOffset:duration:")] 
    void ScrollToOffsetduration (float offset, double duration); 

    [Export ("scrollByNumberOfItems:duration:")] 
    void ScrollByNumberOfItemsduration (int itemCount, double duration); 

    [Export ("scrollToItemAtIndex:duration:")] 
    void ScrollToItemAtIndexduration (int index, double duration); 

    [Export ("scrollToItemAtIndex:animated:")] 
    void ScrollToItemAtIndexanimated (int index, bool animated); 

    [Export ("removeItemAtIndex:animated:")] 
    void RemoveItemAtIndexanimated (int index, bool animated); 

    [Export ("insertItemAtIndex:animated:")] 
    void InsertItemAtIndexanimated (int index, bool animated); 

    [Export ("reloadItemAtIndex:animated:")] 
    void ReloadItemAtIndexanimated (int index, bool animated); 

    [Export ("itemViewAtIndex:")] 
    UIView ItemViewAtIndex (int index); 

    [Export ("indexOfItemView:")] 
    int IndexOfItemView (UIView view); 

    [Export ("indexOfItemViewOrSubview:")] 
    int IndexOfItemViewOrSubview (UIView view); 

    [Export ("offsetForItemAtIndex:")] 
    float OffsetForItemAtIndex (int index); 

    [Export ("reloadData")] 
    void ReloadData(); 

} 

[BaseType (typeof())] 
[Model] 
interface iCarouselDataSource { 
    [Abstract] 
    [Export ("numberOfItemsInCarousel:")] 
    uint NumberOfItemsInCarousel (iCarousel carousel); 

    [Abstract] 
    [Export ("carousel:viewForItemAtIndex:reusingView:")] 
    UIView CarouselviewForItemAtIndexreusingView (iCarousel carousel, uint index, UIView view); 

    [Abstract] 
    [Export ("numberOfPlaceholdersInCarousel:")] 
    uint NumberOfPlaceholdersInCarousel (iCarousel carousel); 

    [Abstract] 
    [Export ("carousel:placeholderViewAtIndex:reusingView:")] 
    UIView CarouselplaceholderViewAtIndexreusingView (iCarousel carousel, uint index, UIView view); 

    [Abstract] 
    [Export ("numberOfVisibleItemsInCarousel:")] 
    uint NumberOfVisibleItemsInCarousel (iCarousel carousel); 

} 

[BaseType (typeof())] 
[Model] 
interface iCarouselDelegate { 
    [Export ("carouselWillBeginScrollingAnimation:")] 
    void CarouselWillBeginScrollingAnimation (iCarousel carousel); 

    [Export ("carouselDidEndScrollingAnimation:")] 
    void CarouselDidEndScrollingAnimation (iCarousel carousel); 

    [Export ("carouselDidScroll:")] 
    void CarouselDidScroll (iCarousel carousel); 

    [Export ("carouselCurrentItemIndexUpdated:")] 
    void CarouselCurrentItemIndexUpdated (iCarousel carousel); 

    [Export ("carouselWillBeginDragging:")] 
    void CarouselWillBeginDragging (iCarousel carousel); 

    [Export ("carouselDidEndDragging:willDecelerate:")] 
    void CarouselDidEndDraggingwillDecelerate (iCarousel carousel, bool decelerate); 

    [Export ("carouselWillBeginDecelerating:")] 
    void CarouselWillBeginDecelerating (iCarousel carousel); 

    [Export ("carouselDidEndDecelerating:")] 
    void CarouselDidEndDecelerating (iCarousel carousel); 

    [Export ("carousel:itemTransformForOffset:baseTransform:")] 
    CATransform3D CarouselitemTransformForOffsetbaseTransform (iCarousel carousel, float offset, CATransform3D transform); 

    [Export ("carousel:valueForOption:withDefault:")] 
    float CarouselvalueForOptionwithDefault (iCarousel carousel, iCarouselOption option, float value); 

    [Export ("carousel:shouldSelectItemAtIndex:")] 
    bool CarouselshouldSelectItemAtIndex (iCarousel carousel, int index); 

    [Export ("carousel:didSelectItemAtIndex:")] 
    void CarouseldidSelectItemAtIndex (iCarousel carousel, int index); 

    [Export ("carouselShouldWrap:__attribute__((deprecated))")] 
    bool CarouselShouldWrap__attribute__((deprecated)) (iCarousel carousel, (deprecated)); 

    [Export ("carouselItemWidth:__attribute__((deprecated))")] 
    float CarouselItemWidth__attribute__((deprecated)) (iCarousel carousel, (deprecated)); 

    [Export ("carouselOffsetMultiplier:__attribute__((deprecated))")] 
    float CarouselOffsetMultiplier__attribute__((deprecated)) (iCarousel carousel, (deprecated)); 

    [Export ("carousel:itemAlphaForOffset:__attribute__((deprecated))")] 
    float CarouselitemAlphaForOffset__attribute__((deprecated)) (iCarousel carousel, float offset, (deprecated)); 

    [Export ("carousel:valueForTransformOption:withDefault:__attribute__((deprecated))")] 
    float CarouselvalueForTransformOptionwithDefault__attribute__((deprecated)) (iCarousel carousel, iCarouselOption option, float value, (deprecated)); 

} 

如何修復錯誤並在我的Xamarin.iOS項目中使用iCarousel?這是我與Xamarin的第一個項目,如果問題很蠢,抱歉。

謝謝。

+0

你正在得到什麼錯誤? – Blounty 2013-03-12 10:49:10

回答

2

比不上那些看起來錯誤:

[Export ("id<iCarouselDelegate>")] 
IBOutlet Id<iCarouselDelegate> { get; set; } 

[...] 

[Export ("IBOutletid<iCarouselDataSource>dataSource")] 
nonatomic, ah_weak IBOutletid<iCarouselDataSource>dataSource(); 

[...] 


[Export ("carouselShouldWrap:__attribute__((deprecated))")] 
bool CarouselShouldWrap__attribute__((deprecated)) (iCarousel carousel, (deprecated)); 

[Export ("carouselItemWidth:__attribute__((deprecated))")] 
float CarouselItemWidth__attribute__((deprecated)) (iCarousel carousel, (deprecated)); 

[Export ("carouselOffsetMultiplier:__attribute__((deprecated))")] 
float CarouselOffsetMultiplier__attribute__((deprecated)) (iCarousel carousel, (deprecated)); 

[Export ("carousel:itemAlphaForOffset:__attribute__((deprecated))")] 
float CarouselitemAlphaForOffset__attribute__((deprecated)) (iCarousel carousel, float offset, (deprecated)); 

[Export ("carousel:valueForTransformOption:withDefault:__attribute__((deprecated))")] 
float CarouselvalueForTransformOptionwithDefault__attribute__((deprecated)) (iCarousel carousel, iCarouselOption option, float value, (deprecated)); 

對於棄用的,刪除它們,你將不再需要他們。對於其他兩個,首先評論他們,然後解決它們。

還有那還有:

[BaseType (typeof())] 
[Model] 
interface iCarouselDelegate { 

委託通常是[BaseType (typeof (NSObject)]

總之,具有發電機幫助您上手,但從來沒有期望它做所有的工作適合你。不要做經濟不讀this並知道一點關於Obj-C

相關問題