如何获取内容大小和设备宽度的x位置?

时间:2017-08-28 11:35:41

标签: ios swift uiscrollview uicollectionview

我有这些价值观:

  • iPhone 宽度:414
  • UICollectionView宽度:414
  • UICollectionView身高:25
  • UICollectionView ContentSize宽度:578
  • 滚动至位置:466
  • 自定义视图宽度:112
  • 自定义视图高度:25

滚动到该位置时,如何找到与origin.x宽度相关的值(UICollectionView 466

其他详细信息:我正在将自定义视图移动到UICollectionView中单元格的滚动位置。即使我们的内容大小超过UICollectionView的实际宽度,我们也应该将自定义视图放在相对于UICollectionView的位置。

1 个答案:

答案 0 :(得分:0)

尝试此代码//未经测试

<强> EDITED

let percentage = (self.collectionview.contentOffset.x * 100) /  (self.collectionview.contentSize.width -  self.collectionview.frame.size.width)
 let rightCorner =  (self.collectionview.frame.size.width *   percentage ) / 100

 yourview.frame.origin.x  =  rightCorner
 yourview.frame.origin.x -=  yourview.frame.size.width

编辑9月4日

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

中添加以下代码
if ([self.view viewWithTag:500000]) {
    [[self.view viewWithTag:500000] removeFromSuperview];
}

CGFloat xPos = ((scrollView.contentOffset.x) / (scrollView.contentSize.width - scrollView.frame.size.width)) * (scrollView.frame.size.width - 112) ;

UIView *view = [UIView new];
view.tag = 500000;
[view setFrame:CGRectMake(xPos ,self.collectionViewFrames.frame.origin.y + self.collectionViewFrames.frame.size.height, 112, 25)];
[view setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view];
[self.view  bringSubviewToFront:view];

enter image description here

enter image description here