Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableViewCell中带有UIPageControl的UIScrollView_Ios_Objective C_Uitableview_Uiscrollview - Fatal编程技术网

Ios UITableViewCell中带有UIPageControl的UIScrollView

Ios UITableViewCell中带有UIPageControl的UIScrollView,ios,objective-c,uitableview,uiscrollview,Ios,Objective C,Uitableview,Uiscrollview,我正试图创造这样的东西 以下是我尝试的示例代码: -(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { 静态NSString*simpleTableIdentifier=@“ReturnMeCell” UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:simpleTab

我正试图创造这样的东西

以下是我尝试的示例代码:

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { 静态NSString*simpleTableIdentifier=@“ReturnMeCell”

UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
如果(单元格==nil)
{
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault重用标识符:simpleTableIdentifier];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
}
UIImageView*rowImageView=(UIImageView*)[带标记的单元格视图:1];
UILabel*问题选项标签=(UILabel*)[带标签的单元格视图:2];
UIImageView*collapseImageView=(UIImageView*)[带标记的单元格视图:3];
UIScrollView*scrollView=(UIScrollView*)[带标记的单元格视图:4];
UIImageView*sampleImageView=(UIImageView*)[带标记的单元格视图:5];
UIButton*sampleButton=(UIButton*)[带标记的单元格视图:6];
UILabel*说明HeaderLabel=(UILabel*)[带标记的单元格视图:7];
UILabel*指令标签=(UILabel*)[带标记的单元格视图:8];
UIPageControl*pgCntrl=(UIPageControl*)[带标记的单元格视图:9];
[rowImageView setImage:[UIImage ImageName:@“normalcell.png”];
questionOptionLabel.text=@;
collapseImageView.image=nil;
scrollView.hidden=是;
sampleImageView.image=nil;sampleImageView.hidden=YES;
sampleButton.hidden=是;
instructionHeaderLabel.text=@“”;instructionHeaderLabel.hidden=是;
instructionsLabel.text=@“;instructionsLabel.hidden=是;
pgCntrl.hidden=是;
[sampleButton addTarget:self action:@selector(userImageButtonTapped:)for ControlEvents:UIControlEventTouchUpInside];
sampleImageView.image=nil;
[collapseImageView setImage:[UIImage ImageName:@“down.png”];
questionOptionLabel.text=@;
instructionHeaderLabel.text=@“指令”;
if(indexPath.row==0)
{
指令headerLabel.hidden=否;
sampleImageView.image=self.barcodeImage;
scrollView.hidden=否;
scrollView.delegate=self;
pgCntrl.hidden=否;
sampleImageView.hidden=否;
sampleButton.hidden=否;
pgCntrl.numberOfPages=5;
pgCntrl.currentPage=0;

对于(int i=0;i我建议您使用不同的方法,因为您的解决方案不可伸缩。如果您想要n个页面,则必须在滚动视图中添加n个图像和标签,这将是一个混乱且不节省内存的问题

请看一下,我想它会满足您的需要。

这是我的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
  tableObj.dataSource = self;
  tableObj.delegate = self;
  scrollView.delegate = self;
    // customObj = [[customCellForText alloc]init];
   imageArray = [[NSMutableArray alloc]initWithObjects:[UIImage imageNamed:@"image1.jpg"],
  [UIImage imageNamed:@"image2.jpg"],
  [UIImage imageNamed:@"man-actor-Ashton-Kutcher-Wallpaper.jpg"],
  [UIImage imageNamed:@"Man-Booker-Prize-judges-p-011.jpg"],
  [UIImage imageNamed:@"man-curl.jpg"]
  ,nil];

    // pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(170, 180, 100, 30)];

}

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  static NSString *cellIdentifier = @"cell";
  customCellForText *cell = [tableObj dequeueReusableCellWithIdentifier:cellIdentifier];
   NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"customCellForText" owner:self options:nil];
   cell = [nib objectAtIndex:0];

    scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(130, 80, 150, 100)];
    scrollView.pagingEnabled = YES;
    scrollView.delegate = self;
    [scrollView setShowsHorizontalScrollIndicator:NO];
    //[scrollView setShowsVerticalScrollIndicator:NO];
   self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * imageArray.count, self.scrollView.frame.size.height);
    [cell.contentView addSubview:scrollView];

    for (int i = 0; i < imageArray.count; i++){
      CGRect frame;
      frame.origin.x = self.scrollView.frame.size.width * i;
      frame.origin.y = 0;
      frame.size = self.scrollView.frame.size;

      subview = [[UIImageView alloc] initWithFrame:frame];
      subview.image = [imageArray objectAtIndex:i];
      subview.contentMode = UIViewContentModeScaleAspectFit;
      [self.scrollView addSubview:subview];

    }

  pageControl = [[UIPageControl alloc]init];
  pageControl.frame = CGRectMake(170, 180, 100, 30);
  pageControl.numberOfPages = imageArray.count;
  pageControl.currentPage = 0;
  pageControl.hidesForSinglePage = YES;
  [cell.contentView addSubview:pageControl];
  [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];

  cell.nameLabel.text=@"amol";

  return cell;
}

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

    CGFloat pageWidth = sender.frame.size.width;
     int newPage = floor((sender.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

  self.pageControl.currentPage = newPage;

  }
-(void)viewDidLoad
{
[超级视图下载];
tableObj.dataSource=self;
tableObj.delegate=self;
scrollView.delegate=self;
//customObj=[[customCellForText alloc]init];
imageArray=[[NSMutableArray alloc]initWithObjects:[UIImage ImageName:@“image1.jpg”],
[UIImage ImageName:@“image2.jpg”],
[UIImage ImageName:@“男演员阿什顿·库彻壁纸.jpg”,
[UIImage ImageName:@“Man-Booker-Prize-judgets-p-011.jpg”,
[UIImage ImageName:@“man curl.jpg”]
,无];
//pageControl=[[UIPageControl alloc]initWithFrame:CGRectMake(17018010030)];
}
-(NSInteger)表格视图中的节数:(UITableView*)表格视图{
返回1;
}
-(NSInteger)表视图:(UITableView*)表视图行数节:(NSInteger)节{
返回5;
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
静态NSString*cellIdentifier=@“cell”;
customCellForText*单元格=[tableObj dequeueReusableCellWithIdentifier:cellIdentifier];
NSArray*nib=[[NSBundle mainBundle]loadNibNamed:@“customCellForText”所有者:自选项:nil];
单元格=[nib objectAtIndex:0];
scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(130,80,150,100)];
scrollView.PaginEnabled=是;
scrollView.delegate=self;
[滚动视图设置ShowShorizontalsCrollinIndicator:否];
//[滚动视图设置显示垂直滚动指示器:否];
self.scrollView.contentSize=CGSizeMake(self.scrollView.frame.size.width*imageArray.count,self.scrollView.frame.size.height);
[cell.contentView addSubview:scrollView];
对于(int i=0;i
为什么您需要在滚动时添加图像?您可以立即添加图像并滚动显示它们吗?@image,您可以将图像上载到tinypic等网站并共享链接。@第二页,是否要延迟加载数据?如果这是您想要的,您可以为此找到一些开源库。:)@OlegFedorov我需要从不同的维度(顶部、底部等)拍摄产品图像,标签提供了说明。@Sufian这是tinyurl链接@Maverick,您可以将此链接添加到您的问题中。
- (void)viewDidLoad
{
    [super viewDidLoad];
  tableObj.dataSource = self;
  tableObj.delegate = self;
  scrollView.delegate = self;
    // customObj = [[customCellForText alloc]init];
   imageArray = [[NSMutableArray alloc]initWithObjects:[UIImage imageNamed:@"image1.jpg"],
  [UIImage imageNamed:@"image2.jpg"],
  [UIImage imageNamed:@"man-actor-Ashton-Kutcher-Wallpaper.jpg"],
  [UIImage imageNamed:@"Man-Booker-Prize-judges-p-011.jpg"],
  [UIImage imageNamed:@"man-curl.jpg"]
  ,nil];

    // pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(170, 180, 100, 30)];

}

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  static NSString *cellIdentifier = @"cell";
  customCellForText *cell = [tableObj dequeueReusableCellWithIdentifier:cellIdentifier];
   NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"customCellForText" owner:self options:nil];
   cell = [nib objectAtIndex:0];

    scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(130, 80, 150, 100)];
    scrollView.pagingEnabled = YES;
    scrollView.delegate = self;
    [scrollView setShowsHorizontalScrollIndicator:NO];
    //[scrollView setShowsVerticalScrollIndicator:NO];
   self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * imageArray.count, self.scrollView.frame.size.height);
    [cell.contentView addSubview:scrollView];

    for (int i = 0; i < imageArray.count; i++){
      CGRect frame;
      frame.origin.x = self.scrollView.frame.size.width * i;
      frame.origin.y = 0;
      frame.size = self.scrollView.frame.size;

      subview = [[UIImageView alloc] initWithFrame:frame];
      subview.image = [imageArray objectAtIndex:i];
      subview.contentMode = UIViewContentModeScaleAspectFit;
      [self.scrollView addSubview:subview];

    }

  pageControl = [[UIPageControl alloc]init];
  pageControl.frame = CGRectMake(170, 180, 100, 30);
  pageControl.numberOfPages = imageArray.count;
  pageControl.currentPage = 0;
  pageControl.hidesForSinglePage = YES;
  [cell.contentView addSubview:pageControl];
  [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];

  cell.nameLabel.text=@"amol";

  return cell;
}

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

    CGFloat pageWidth = sender.frame.size.width;
     int newPage = floor((sender.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

  self.pageControl.currentPage = newPage;

  }