2016-07-15 122 views
0

因此,我試圖使用iCarousel以圖像的形式顯示產品,然後用戶可以簡單地滾動並查看所有可用的產品。iCarousel不會加載圖像

因爲當您加載視圖 - 控制它根本不會顯示任何圖像,甚至表現出傳送帶某些原因,我用它爲int等

我的代碼遵循的號碼時之前曾:

ApparelViewController.m

#import "ApparelViewController.h" 

@interface ApparelViewController() 

@property (nonatomic, strong) NSMutableArray *images; 

@end 

@implementation ApparelViewController 

@synthesize carouselView = _carouselView; 
@synthesize images = _images; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) 
    { 
     //get image paths 
     NSArray *imagePaths = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:@"Products"]; 

     //preload images (although FXImageView can actually do this for us on the fly) 
     _images = [[NSMutableArray alloc] init]; 
     for (NSString *path in imagePaths) 
     { 
      [_images addObject:[UIImage imageWithContentsOfFile:path]]; 
     } 
    } 
    return self; 
} 

- (void)dealloc 
{ 
    //it's a good idea to set these to nil here to avoid 
    //sending messages to a deallocated viewcontroller 
    _carouselView.delegate = nil; 
    _carouselView.dataSource = nil; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor colorWithRed:236/255 green:240/255 blue:241/255 alpha:1]; 

    // Do any additional setup after loading the view. 
    _carouselView.type = iCarouselTypeRotary; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    //free up memory by releasing subviews 
    self.carouselView = nil; 
} 

- (NSInteger)numberOfItemsInCarousel:(iCarousel *)carousel 
{ 
    return [_images count]; 
} 

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view 
{ 
    if (view == nil) 
    { 
     FXImageView *imageView = [[FXImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0f, 200.0f)]; 
     imageView.contentMode = UIViewContentModeScaleAspectFit; 
     imageView.asynchronous = YES; 
     imageView.reflectionScale = 0.5f; 
     imageView.reflectionAlpha = 0.25f; 
     imageView.reflectionGap = 10.0f; 
     imageView.shadowOffset = CGSizeMake(0.0f, 2.0f); 
     imageView.shadowBlur = 5.0f; 
     imageView.cornerRadius = 10.0f; 
     view = imageView; 
    } 
    //show placeholder 
    ((FXImageView *)view).processedImage = [UIImage imageNamed:@"page.png"]; 

    ((FXImageView *)view).image = _images[index]; 

    return view; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

- (IBAction)goBack:(id)sender { 

    NSString * storyboardName = @"Main"; 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil]; 
    UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"navBar"]; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 

@end 

然後在ApparelViewController.h文件我有以下代碼:

#import <UIKit/UIKit.h> 
#import "iCarousel.h" 
#import "FXImageView.h" 

@interface ApparelViewController : UIViewController <iCarouselDelegate, iCarouselDelegate> 

@property (strong, nonatomic) IBOutlet UIButton *backButton; 
@property (strong, nonatomic) IBOutlet iCarousel *carouselView; 

@end 

真的很煩人的是我之前使用過iCarousel,但對於Swift,所以我知道它是如何工作的,但我不知道Obj-C那麼好!

關於如何去顯示圖像的任何想法?

回答

1

你可以檢查有幾件事情,

  1. 檢查「圖像」是返回比「numberOfItemsInCarousel」 0偉大的,很明顯,但值得一試的值。
  2. 檢查圖像是否實際加載,即檢查圖像[index]實際加載圖像。
  3. 我並不熟悉FXImageView,但嘗試使用(void)setImage:(UIImage *)image;而不是分配@property (nonatomic, strong) UIImage *image;。該文件說,.image實際上不設置圖像,但添加效果。

如果這些都不能解決您的問題,請評論,我會繼續尋找,祝你好運。

+0

我已經嘗試了很多東西,包括你的建議和運氣:(有沒有機會,也許你可以嘗試使用iCarousel創建一個項目,看看你是否可以得到它顯示不同的圖像請 – Konsy

+0

我不知道不介意走開,也許我們可以繼續聊聊吧?來這個房間,http://chat.stackoverflow.com/rooms/26424/iosandroidchaosoverflow – JingJingTao

+0

加入房間 – Konsy