【发布时间】:2014-03-04 15:58:41
【问题描述】:
好的,我真的尝试寻找有关如何实现我正在寻找的示例或教程,但没有任何运气。
我有一个 PFQueryTableView 将数据传递给一个 DetailView(那里都很好)。
我的 DetailView 是一个 Horizontal ScrollView,它从单击的单元格中获取图像。我的问题来了:我设法将数据传递给 DetailView,但我不知道如何在 ScrollView 中设置图像。任何人都可以向我发送教程的方向,或者可以通过这个问题帮助我吗?
这是我的代码:(显然我错过了设置要在 ScrollView 中查看的图像的部分。)
BellezaTableViewController.m
#import "BellezaTableViewController.h"
#import "BellezaDetailViewController.h"
#import "BellezaView.h"
@interface BellezaTableViewController ()
@end
@implementation BellezaTableViewController {
}
- (id)initWithCoder:(NSCoder *)aCoder
{
self = [super initWithCoder:aCoder];
if (self) {
self.parseClassName = @"BellezaView";
self.textKey = @"cellTitle";
self.textKey = @"descriptionTitle";
self.pullToRefreshEnabled = YES;
self.paginationEnabled = NO;
self.loadingViewEnabled = YES;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
- (PFQuery *)queryForTable{
PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];
query.cachePolicy = kPFCachePolicyCacheThenNetwork;
return query;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *simpleTableIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
UILabel *cellTitle = (UILabel*) [cell viewWithTag:101];
cellTitle.text = [object objectForKey:@"cellTitle"];
UILabel *descriptionTitle = (UILabel*) [cell viewWithTag:102];
descriptionTitle.text = [object objectForKey:@"descriptionTitle"];
return cell;
}
- (void) objectsDidLoad:(NSError *)error
{
[super objectsDidLoad:error];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showBellezaDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
BellezaDetailViewController *destViewController = segue.destinationViewController;
PFObject *object = [self.objects objectAtIndex:indexPath.row];
BellezaView *bellezaView = [[BellezaView alloc] init];
bellezaView.cellTitle = [object objectForKey:@"cellTitle"];
bellezaView.descriptionTitle = [object objectForKey:@"descriptionTitle"];
bellezaView.image_1 = [object objectForKey:@"image_1"];
destViewController.bellezaView = bellezaView;
}
}
@end
BellezaTableViewController.h
#import <UIKit/UIKit.h>
#import <Parse/Parse.h>
@interface BellezaTableViewController : PFQueryTableViewController
@end
DetailViewController.m
#import "BellezaDetailViewController.h"
#import "BellezaView.h"
@interface BellezaDetailViewController ()
@end
@implementation BellezaDetailViewController
@synthesize lookPhoto, bellezaView, activityIndicator, scrollView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];{
[activityIndicator startAnimating];
[activityIndicator performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:60];
[scrollView setAlwaysBounceHorizontal:YES];
[scrollView setAlwaysBounceVertical:NO];
[scrollView setPagingEnabled:YES];
NSInteger numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++){
这将是我不知道如何处理的部分,并且找不到任何示例可以遵循。我应该使用数组吗?如果是这样,如果我应该从 PFQueryTable 传递数据,我该如何检索数据?我发现了一些示例可以获取类似以下代码的图像:
image.image = [UIImage imageNamed: [NSString stringWithFormat:@"image_%d", i+1]];
但我的问题是我的图像必须通过解析来获取。那么我该怎么做呢?请帮忙!
lookPhoto.file = bellezaView.image_1;
[lookPhoto loadInBackground];
[scrollView addSubview:lookPhoto];
}
scrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height);
}
}
- (void)viewDidUnload {
[self setLookPhoto:nil];
[super viewDidUnload];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
DetailViewController.h
#import <UIKit/UIKit.h>
#import "BellezaView.h"
#import <Parse/Parse.h>
@interface BellezaDetailViewController : UIViewController
@property (weak, nonatomic) IBOutlet PFImageView *lookPhoto;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;
@property (nonatomic, strong) BellezaView *bellezaView;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end
BellezaView.m
#import "BellezaView.h"
@implementation BellezaView
@synthesize cellTitle, descriptionTitle, image_1;
@end
BellezaView.h
#import <Foundation/Foundation.h>
#import <Parse/Parse.h>
@interface BellezaView : NSObject
@property (nonatomic, strong) NSString *cellTitle;
@property (nonatomic, strong) NSString *descriptionTitle;
@property (nonatomic, strong) PFFile *image_1;
@end
提前致谢!
【问题讨论】:
-
我是否应该换个页面查看?
标签: ios image uiscrollview parse-platform horizontalscrollview