如何在UIScrollView中获取显示区域的中心?

时间:2014-04-28 05:28:00

标签: ios objective-c uiview uiscrollview frame

使用多个UIScrollView设置UIButtons身高 1400 。点击这些UIButtons中的每一个,我会显示一个包含一些值的小UIView(加载视图时隐藏)。我想在UIViews的显示区域的中心处显示这些UIScrollView

当我点击'TYPE'(在图片中的UIView后面)时,我会显示如下所示的视图:

enter image description here

但无论'TYPE'按钮在哪里,点击时我想透露UIView,如下所示(始终位于显示区域的中心):

enter image description here enter image description here

谢谢!

3 个答案:

答案 0 :(得分:5)

试试这个

yourCustomAlert.center = self.view.center;

在scrollView中

  1. 首先看到scrollview的Rect

    CGRect visibleRect = CGRectMake(myScrollView.contentOffset.x, myScrollView.contentOffset.y, myScrollView.bounds.size.width, myScrollView.bounds.size.height)
    
  2. 然后得到它的中心

    CGPoint centerPoint = CGPointMake(visibleRect.size.width/2, visibleRect.size.height/2);
    
  3. 然后设置alertView的中心

    yourCustomAlert.center = centerPoint;
    

答案 1 :(得分:2)

你的问题不明确。但是,如果您希望隐藏视图出现在屏幕中央,尽管有scrollView边界,您可以使用

yourHiddenView.center = self.view.center; //If Parent class is a ViewController
//yourHiddenView.hidden = NO;

yourHiddenView.center = self.center; //If Parent class is a UIView
//yourHiddenView.hidden = NO;

并且,如果您希望隐藏视图位于ScrollView的中心,请找到scrollView可见矩形并找到其中心

CGRect visibleRect;
visibleRect.origin = scrollView.contentOffset;
visibleRect.size = scrollView.bounds.size;

CGPoint scrollViewCenter = CGPointMake(visibleRect.size.width/2, visibleRect.size.height/2);

yourHiddenView.center = scrollViewCenter;
//yourHiddenView.hidden = NO;

答案 2 :(得分:0)

尝试

yourCustomAlert.center = YourScrollView.center;