0

iOS 개발자를 이해하려고합니다. 그리고 질문이 ... 여기 ... 나는 pageControl (이미지 배열)과 간단한 scrollview 갤러리가 있고 tableView와 이미지의 이름으로 popover를 보여주는 사용자 정의 버튼이 있습니다. 나는 다음 원하는 ... 이미지의 이름을 가진 일부 셀은, 내가 필요 이미지 갤러리 ... 도움과 답변 감사있는 ScrollView로 복귀 할 때 키를 누릅니다 .. 질문에서tableView popover에서 셀을 누를 때 이미지 가져 오기

Code of ScrollView and PageControl: 

-(void)scrollViewMethod { 

    for(UIView* view in [scrollView subviews]) 
    { 
     [view removeFromSuperview]; 
    } 

    for (int i = 0; i < [imgArray count]; i++) { 

     //Create objects in pages 
     CGRect frame; 
     frame.origin.x = self.scrollView.frame.size.width * i; 
     frame.origin.y = 0; 
     frame.size = self.scrollView.frame.size; 
     self.imgView = [[UIImageView alloc]initWithFrame:frame]; 
     self.imgView.image = [UIImage imageNamed:[imgArray objectAtIndex:i]]; 
     self.imgView.contentMode = UIViewContentModeCenter; 
     [self.scrollView addSubview:self.imgView]; 

    } 

} 


-(void)scrollViewDidScroll:(UIScrollView *)sender { 

    CGFloat pageWidth = self.scrollView.frame.size.width; 
    int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    self.pageControl.currentPage = page; 
    //self.pageControl.numberOfPages 
    // Disable vertical scroll 
    [sender setContentOffset:CGPointMake(sender.contentOffset.x, scrollY)]; 
} 

And Code of custom button and popover: 

-(IBAction)showTable:(id)sender { 

    UIImage *btnTableImage = [UIImage imageNamed:@"list.png"]; 

    UIButton *bttn = [UIButton buttonWithType:UIButtonTypeCustom]; 

    bttn.bounds = CGRectMake(0, 0, btnTableImage.size.width, btnTableImage.size.height); 

    [bttn addTarget:self action:@selector(showTable:) forControlEvents:UIControlEventTouchDown]; 

    [bttn setImage:btnTableImage forState:UIControlStateNormal]; 

    UIBarButtonItem *buttonListItem = [[UIBarButtonItem alloc] initWithCustomView:bttn]; 

    [self.navigationItem setLeftBarButtonItem:buttonListItem]; 


    if (self._popover) { 
     [self._popover dismissPopoverAnimated:YES]; 
     self._popover = nil; 
     return; 
    } 
    SelectImageTableController *sitc = [self.storyboard instantiateViewControllerWithIdentifier:@"SelectImageTableController"]; 
    sitc.delegate = self; 
    self._popover = [[UIPopoverController alloc]initWithContentViewController:sitc]; 
    self._popover.delegate = self; 
    [self._popover presentPopoverFromBarButtonItem:buttonListItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

And tableView: 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [imgList count]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
    static NSString *cellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    } 
    cell.textLabel.text = [imgList objectAtIndex:indexPath.row]; 
    //cell.imageView.image = [UIImage imageNamed:[ivc.imgArray objectAtIndex:indexPath.row]]; 

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    return cell; 
} 

#pragma mark Table View Delegate 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    //ImageViewController *ivc = [[ImageViewController alloc]init]; 
    NSLog(@"row: %d %@", indexPath.row, cell.textLabel.text); 
} 
+0

테이블보기의 셀에 표시된 내용은 무엇입니까 ?? 이미지 이름 ?? 그리고 모든 이미지는 문서 폴더 또는 번들에 저장됩니까 ?? – svrushal

답변

0

선택한 셀의 indexPath가 있습니다. 각 이미지의 X 좌표는 self.scrollView.frame.size.width * i와 같습니다. 그래서 당신이 사용할 수있는 [: 애니메이션 사각형 : self.scrollView scrollToRect은 NO] 여기서 당신의

i = indexPath.row; 
rect.origin.x = self.scrollView.frame.size.width * i; 
frame.size = self.scrollView.frame.size; 

tableviewdelegate의 didSelect 방법에 넣어.하지

+0

어쩌면, 나 나쁜 설명, 나는 2 컨트롤러 ... FirstController - ScrollView, 이미지의 배열 popover init 등 ...SecondController - 이미지 이름의 배열로만 구성되어 popover의 tableView 내용 ... 나는 당신의 대답을 이해하므로 ... scrollViewMethod 내가 넣어 [self.scrollView scrollToRect : rect ........... : NO] ; 그리고 didSelectRow에서 i = indexPath.row 등을 넣었습니까? – NilsHolgerson

+0

컨트롤러가 2 개인 경우 대리자 패턴을 사용하십시오. 내 말은 당신이 셀을 선택했을 때 적절한 이미지로 스크롤해야하는 델리게이트의 메소드를 호출하는 것입니다. – HereTrix

+0

"He"가 당신에게 감사를 표합니다.) 나는 대표단에 의해 일을 시작했으나 이것이 문제입니다. 어떻게 해? 나는 pageControl에 어려움을 겪고 있지만 페이지 만 설정하면 scrollview가 그대로 유지됩니다. 나는 'svrushal'의 충고로 노력하고있다. 그러나 이미지는 갤러리의 끝 부분에 서고 또한 복제합니다. 이게 어떻게 완벽 해? 강한 망치가 없으면 ... – NilsHolgerson

0

나는 테이블에 있음을 이해 이미지 이름이있는 셀을보고 셀을 클릭하면 해당 이미지를 표시해야합니다.

이제 이미지가 저장된 위치는 언급하지 않았지만 여전히 답을 찾으려고합니다. 나는 네가 너에게 어떤 생각을 갖기를 희망한다.

먼저 이미지의 이름을 만듭니다.

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
NSString *cName= [NSString [email protected]"%@.png",cell.textLabel.text]; 

여기서는 이미지 확장으로 png를 고려했습니다. 이미지 설치 1.

UIImage *img=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:cell.textLabel.text ofType:@"png"]]; 

이제 IMG 이미지가 될 것입니다 후 이미지 2.If

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:cName]; 
     UIImage *img = [UIImage imageWithContentsOfFile:getImagePath]; 

응용 프로그램의 리소스 폴더에 번들 즉에 저장된 문서 폴더에 저장되어있는 U를 이미지 뷰 이미지를 설정할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 셀이 어떤 이미지를 반환해야하는지 어떻게 이해하고 있습니까? – NilsHolgerson

+0

joillessly, 이해가 안 돼요 ... – NilsHolgerson

+0

당신은 대답 있어요 ?? – svrushal

관련 문제