2012-12-07 129 views
0

請幫忙。我有這樣的代碼,顯示我的圖像,滾動型:從滾動視圖保存圖像

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 


    NSArray *imgNames = [[NSArray alloc] initWithObjects:@"ip1.jpg", @"ip2.jpg", @"ip3.jpg", @"ip4.jpg", @"ip5.jpg", @"ip6.jpg", @"ip7.jpg", @"ip8.jpg", @"ip9.jpg", @"ip10.jpg",@"ip11.jpg",@"ip12.jpg",@"ip13.jpg",@"ip14.jpg",@"ip15.jpg",@"ip16.jpg",@"ip17.jpg",@"ip18.jpg",@"ip19.jpg",@"ip20.jpg",@"ip21.jpg", nil]; 


    // Setup the array of UIImageViews 
    NSMutableArray *imgArray = [[NSMutableArray alloc] init]; 
    UIImageView *tempImageView; 
    for(NSString *name in imgNames) { 
     tempImageView = [[UIImageView alloc] init]; 
     tempImageView.contentMode = UIViewContentModeScaleAspectFill; 
     tempImageView.image = [UIImage imageNamed:name]; 
     [imgArray addObject:tempImageView]; 

    } 
CGSize pageSize = scrollViewBack.frame.size; // scrollView is an IBOutlet for our UIScrollView 
    NSUInteger page = 0; 
    for(UIView *view in imgArray) { 
     [scrollViewBack addSubview:view]; 

     // This is the important line 
     view.frame = CGRectMake(pageSize.width * page++ + 40, 0, pageSize.width - 80, pageSize.height); 
} 



    scrollViewBack.contentSize = CGSizeMake(pageSize.width * [imgArray count], pageSize.height); 

} 

現在,我想一個UILabel,那會告訴我,形象的名字,當我將滾動。請幫助我,我無法實現。非常感謝。

+0

爲什麼不能?只有你將自己編碼。我擔心如果有人會爲你編碼。 –

+1

@如果你收到這些東西,請與我分享。我的要求是一樣的。 –

回答

1

在你的第二個for循環中,您可以查看在的imgArrayimgNames對象的索引,所以試試這個:如果你想顯示的標籤只是當新的圖像

int idx = [imgArray indexOfObject:view]; 
NSString *strName = [imgNames objectAtIndex:idx]; 
//create the label 
label.text=strName; 
//add the label in the scrollView 

顯示,保持這兩個數組作爲iVars和使用UIPageControl跟蹤你的滾動視圖的頁面。 (Sample code)。

+0

嘿。謝謝。我工作,但是,如果我使用NSLOG來展示它。我會給我看像「1124580」的號碼。我也實現了頁面控制,它的工作原理,但如果我想用NSlog只顯示當前頁碼,它也會顯示我「1141212」請幫助我。 – user1625435

+0

可能你正在以錯誤的方式格式化字符串。它應該看起來像'label.text = [NSString stringWithFormat:@「%@」,name];'。或者請顯示你如何設置字符串。 – Mat

1

在你的循環中,你可以做這樣的事情。閱讀蘋果文檔。搜索谷歌如何製作標籤。如果你只是嘗試學習這些東西並不難。

for(NSString *name in imgNames) { 
    // .... 

    UILabel *label = [[UILabel alloc] initWithFrame:WHEREYOUWANTIT]; 
    [label setText:name]; 
}