2015-06-05 28 views
0

我有一個UIImageView充滿了幾個控制器之間共享的AFNetworking。現在我把它在他們每個人所以這段代碼被複制:何處放置「AFNetworking UIImageView」意味着要在多個控制器中顯示?

_headerView = [UIImageView new]; 
    NSString *headerPath = [NSString stringWithFormat:@"domain/header.jpg"]; 
    media.mediaImageURL = [NSURL URLWithString:headerPath]; 
    [_headerView setImageWithURL:media.mediaImageURL placeholderImage:[UIImage imageNamed:@"placeholder.png"] ]; 
    _headerView.frame = CGRectMake(0, 0, self.tableView.frame.size.width, 130); 
    _headerView.contentMode = UIViewContentModeScaleAspectFill; 
    _headerView.clipsToBounds = YES; 
    _headerView.tag = 313; 

,這是什麼情況下,最好的做法是什麼?自定義視圖或imageView?

回答

1

我建議創建一個UIImageView類

+ (instancetype)imageViewWithURL:(NSURL *)url { 

    UIImageView *headerView = [UIImageView new]; 
    [headerView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholder.png"] ]; 
    headerView.frame = CGRectMake(0, 0, self.tableView.frame.size.width, 130); 
    headerView.contentMode = UIViewContentModeScaleAspectFill; 
    headerView.clipsToBounds = YES; 
    headerView.tag = 313; 

    return headerView; 
} 

然後調用它的控制器像

_headerView = [UIImageView imageViewWithURL:media.mediaImageURL]; 
+0

到'self.tableView.frame.size.width'參考不會,如果工作類別是'UIImageView'。 – psobko

+0

謝謝,類別正在改變生活! – kursus

+0

當然,它不會工作,我忽略了它。抱歉。 –

1

你最好的選擇是創建一個UITableViewController的類別並將其導入到使用該代碼的視圖控制器中。