Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/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_Ios_Objective C_Uitableview_Uibutton - Fatal编程技术网

滚动视图中的移动按钮-iOS

滚动视图中的移动按钮-iOS,ios,objective-c,uitableview,uibutton,Ios,Objective C,Uitableview,Uibutton,我目前有一个视图,其中有一个滚动视图。在滚动视图上,我有一个按钮和一个UITableView 在一定条件下,我想把这两件事往上推。我目前正在这样做: tempFrame = [addressTableView frame]; tempFrame.origin.x = 0.0; tempFrame.origin.y = 2.0; tempFrame.size.width = 320.0; tempFrame.size.height = 103.0;

我目前有一个视图,其中有一个滚动视图。在滚动视图上,我有一个按钮和一个UITableView

在一定条件下,我想把这两件事往上推。我目前正在这样做:

    tempFrame = [addressTableView frame];
    tempFrame.origin.x = 0.0;
    tempFrame.origin.y = 2.0;
    tempFrame.size.width = 320.0;
    tempFrame.size.height = 103.0;
    [addressTableView setFrame:tempFrame];        
   // [self.scrollView addSubview:self.addressTableView]; (does not do anything)

    tempFrame = [buttonContinue frame];
    tempFrame.origin.x = 20.0;
    tempFrame.origin.y = 40.0;
    tempFrame.size.width = 150.0;
    tempFrame.size.height = 25.0;
    [buttonContinue setFrame:tempFrame];
   // [self.scrollView addSubview:self.buttonContinue]; (does not do anything)
此方法适用于没有滚动视图的视图

任何关于如何在scrollView中正确移动对象的提示都将不胜感激


谢谢。

如果只是移动它们,而不是调整大小,请尝试使用CGAffineTransform移动按钮。(您还可以通过连接CGscale和CGtranslate来调整大小)

因此,对于您的按钮,它将非常接近:

buttonContinue.transform = CGAffineTransformMakeTranslation(20,40);
这会将按钮向右移动20像素,向下移动40像素

稍后要将其移回,只需调用:

buttonContinue.transform = CGAffineTransformIdentity;
另外,您还可以使用一条线(而不是上面的四条线)创建一个新框架,如下所示:

buttonContinue.frame = CGRectMake(20, 40, 150, 25);

如果只是移动它们,而不是调整大小,请尝试使用CGAffineTransform移动按钮。(您还可以通过连接CGscale和CGtranslate来调整大小)

因此,对于您的按钮,它将非常接近:

buttonContinue.transform = CGAffineTransformMakeTranslation(20,40);
这会将按钮向右移动20像素,向下移动40像素

稍后要将其移回,只需调用:

buttonContinue.transform = CGAffineTransformIdentity;
另外,您还可以使用一条线(而不是上面的四条线)创建一个新框架,如下所示:

buttonContinue.frame = CGRectMake(20, 40, 150, 25);

如果我理解您的问题,我认为您应该取消选中此特定ViewController的文件检查器中的“Autolayout”属性。我也遇到了同样的问题,通过取消选中autolayout,我的问题得到了解决。也许这将有助于解决你的问题


祝你好运

如果我理解您的问题,我认为您应该取消选中此特定ViewController的文件检查器中的“Autolayout”属性。我也遇到了同样的问题,通过取消选中autolayout,我的问题得到了解决。也许这将有助于解决你的问题

祝你好运

试试这个

[addressTableView setFrame:CGRectMake(0,2,320,103)];        
[buttonContinue setFrame:CGRectMake(20,40,150,25)];
如果这不起作用,那么元素addressTableView和ButtonContinContinue的引用就会出现问题。如果它们不在滚动视图中,请使用

[self.scrollView addSubview:addressTableView];
[self.scrollView addSubview:buttonContinue];
确保您的scrollView变量与其IB上的元素链接。

试试这个

[addressTableView setFrame:CGRectMake(0,2,320,103)];        
[buttonContinue setFrame:CGRectMake(20,40,150,25)];
如果这不起作用,那么元素addressTableView和ButtonContinContinue的引用就会出现问题。如果它们不在滚动视图中,请使用

[self.scrollView addSubview:addressTableView];
[self.scrollView addSubview:buttonContinue];

确保scrollView变量与其IB上的元素链接。

移动按钮的最佳方式

 [btn addTarget:self action:@selector(pointMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside];
-(IBAction) pointMoved:(id) sender withEvent:(UIEvent *) event
{
  CGPoint point = [[[event allTouches] anyObject] locationInView:self]; //here you can give scrollview
  UIControl *control = sender;
  control.center = point;
}

移动按钮的最佳方式

 [btn addTarget:self action:@selector(pointMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside];
-(IBAction) pointMoved:(id) sender withEvent:(UIEvent *) event
{
  CGPoint point = [[[event allTouches] anyObject] locationInView:self]; //here you can give scrollview
  UIControl *control = sender;
  control.center = point;
}

谢谢你的回复。不幸的是,这没有起作用。我尝试了两种方法。我认为这可能与此按钮和表视图位于“视图”内部的滚动视图上有关。但是请注意,这两个按钮的“引用出口”都是文件的所有者。您的按钮是否连接到它们的IBOutlet(以及这些IBOutlet属性?)是的,它们已连接,并且也是属性。感谢您的回复。不幸的是,这没有起作用。我尝试了两种方法。我认为这可能与此按钮和表视图位于“视图”内部的滚动视图上有关。但是请注意,这两个按钮的“引用出口”都是文件的所有者。您的按钮是否连接到它们的IBOutlet(以及这些IBOutlet属性?)是的,它们已连接,并且也是属性。感谢您的回复。这确实奏效了。但是取消选中autolayout会弄乱scrollView屏幕。与中一样,它将所有内容都推到屏幕的顶部并离开屏幕。我必须重置scrollView的大小吗?我认为没有其他方法,因此您必须重置所有内容:(感谢您的回复。这确实有效。但取消选中“自动布局”会弄乱scrollView屏幕。如中所示,它会将所有内容推到屏幕的顶部和底部。我是否必须重置scrollView的大小?我认为没有其他方法,因此您必须重置所有内容:(