zam*_*ono 13 iphone position uiscrollview uiview uislider
所以假设我有一个UIScrollView,其中有3个UIViews,其中每个都有一个UISlider.它们垂直放置在UIScrollView中.
我现在在UIScrollView中也有第4个UIView,我想根据已经使用的滑块的位置移动它.
所以在我传递发送者的sliderChanged方法中,我得到了滑块的位置,并将第4个UIWindow的位置调整为y.这在第一个UIView上运行得很好,但是一次在另一个迫使我向下滚动的UIView上,使用滑块移动第四个UIView但是停留在UIScrollView的开头
我在用:
[4thView setCenter:CGPointMake([4thView center].x, [slider center].y+10)];
Run Code Online (Sandbox Code Playgroud)
我需要的是获取滑块的位置相对于scrollView的内容而不是相对于它的UIView,以便我可以相对于scrollView内容再次设置第四个视图.
Aec*_*Liu 36
您可以通过UIView的实例方法转换点.
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)
例如,我想将viewA上的ponint转换为scrollViewB的坐标.
CGPoint aPtInScrollView = [viewA convertPoint:aPoint toView:scrollViewB];
Run Code Online (Sandbox Code Playgroud)
或者,我想知道scrollViewB中viewA的位置.
CGPoint aPosViewA = [scrollViewB convertPoint:CGPointZero fromView:viewA];
Run Code Online (Sandbox Code Playgroud)
使用之前的答案,我进一步解决了我遇到的问题。
如果多个 UIView 中有多个 UITextView,所有 UIView 都在一个 UIScrollView 中:这将动画并滚动到它们。
这也可以应用于 UITextField。
-(void)textViewDidBeginEditing:(UITextView *)textView {
[self.theScrollView setContentOffset:[self.theScrollView convertPoint:CGPointMake(textView.frame.origin.x, textView.frame.origin.y) fromView:textView.superview] animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
如果文本视图上方有标签,只需将 x 或 y 偏移该量即可。
归档时间: |
|
查看次数: |
15954 次 |
最近记录: |