在垂直滚动视图中添加水平滚动UITableView

时间:2014-12-11 06:23:56

标签: ios objective-c uitableview uiscrollview

我正在创建一个基于表单的应用程序,其中我有UIScrollView的垂直UITextField,其中包含UIButtonsUIButtons,如果我点击某些特定的view UIButton,另一个scrollView应该加载到包含tableView的{​​{1}}的水平滚动内。{/ p>

我可以在按钮点击时添加UITableView的新视图,但水平滚动无效..

这是我的代码

- (IBAction)btnSelectHalfClicked:(id)sender
  {
      UIActionSheet * formsActionSheet = [[UIActionSheet alloc]initWithTitle:@"Select your Half" delegate:self cancelButtonTitle:nil                                       destructiveButtonTitle:nil otherButtonTitles:@"Form1",@"Form2",@"Form3", nil];

    [formsActionSheet showInView:self.view];
  }

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (buttonIndex)
{
    case 0:

        NSLog(@"From 1 selected");
        self.txtFieldFirstHalf.text = @"From 1";
        self.superScrollView.contentSize = CGSizeMake(600, 1500);
        self.superScrollInnerView.layer.bounds = CGRectMake(0, 0, 600, 1500);

        self.viewFormOne.layer.borderColor = [UIColor grayColor].CGColor;
        self.viewFormOne.layer.borderWidth = 0.5;
        self.viewFormOne.frame = CGRectMake(20, 920, 1700, 530);
        [self.superScrollView addSubview:self.viewFormOne];
        NSLog(@"Content View Height = %f",self.superScrollInnerView.layer.bounds.size.height);
         NSLog(@"Scroll Content size = %f", self.superScrollView.contentSize.height);
        break;

    case 1:

        self.txtFieldFirstHalf.text = @"Form 2";
        break;

    case 2:

        self.txtFieldFirstHalf.text = @"Form 3";
        break;

    default:
        break;
  }
}

任何人都可以指导我......

提前致谢..

1 个答案:

答案 0 :(得分:0)

我无法绕过这头。

您希望动作表的结果在按下按钮的同一滚动视图中加载新视图吗?为什么不让按钮执行操作并绕过动作表,这似乎是不必要的,这使您的设计变得复杂。

我也不完全确定你用水平滚动的tableview是什么意思..你的意思是像分页滚动视图吗?如果是这种情况,您将要在滚动视图中水平添加UITableView。

以编程方式,最好实例化滚动视图,然后根据您要放在其中的视图设置内容大小:

UIView * containerView = [UIView alloc] initWithFrame:CGRectMake(0,0,600,1500)];
[self.scrollView addSubView:containerView];
[self.scrollView setContentSize:containerView.frame.size];

原因是,您不必事先计划好整个内容的大小;你布置你的意见,计算他们的面积,然后通过滚动视图。