让按钮与View一起滚动

时间:2014-06-25 19:04:36

标签: ios iphone xcode tableview

我有一个以编程方式创建的按钮,并且放在我的UITableViewController之上。我能够做得很好,我的问题是当我滚动时我希望按钮沿着视图移动并固定在那个位置上。

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(80, 210, 160, 40);
[button setTitle:@"Holaa" forState:UIControlStateNormal];
[self.view insertSubview:button aboveSubview:self.tableView];

我尝试使用scrollViewDidScroll实现,但是我无法重新计算按钮当时的位置。

请建议。

由于

5 个答案:

答案 0 :(得分:0)

使用scrollview的contentOffset计算位置。

答案 1 :(得分:0)

您可以将该按钮添加为tableview的标题视图

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
 //Return your button
 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 [button setTitle:@"Holaa" forState:UIControlStateNormal];
 }

答案 2 :(得分:0)

在viewDidLoad中,你可以像这样附加平移手势:

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanBehavior:)];
panGesture.maximumNumberOfTouches = 1;
panGesture.minimumNumberOfTouches = 1;
[self.touchButton addGestureRecognizer:panGesture];

然后按如下方式添加handlePanBehavior函数:

- (void)handlePanBehavior:(UIPanGestureRecognizer *)panGesture {
    CGRect buttonFrame = self.touchButton.frame;
    CGPoint translation = [panGesture translationInView:panGesture.view];

    buttonFrame.origin.x += translation.x;
    buttonFrame.origin.y += translation.y;

    [panGesture setTranslation:CGPointMake(0, 0) inView:panGesture.view];
    self.touchButton.frame = buttonFrame;
}

答案 3 :(得分:0)

不要在表格视图上添加按钮。通过以下方式添加:

[self.view addSubview:button];
[self.view bringSubviewToFront:button];

在将按钮添加到tableView之前,请确保添加self.view

答案 4 :(得分:0)

我能够解决这个问题:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGRect frame = button.frame;
    frame.origin.x = scrollView.contentOffset.x + 80;
    frame.origin.y = scrollView.contentOffset.y + 210;
    [button setFrame:frame];
}