1

我有一个UIScrollview,其中包含UIView一个子视图,例如,

带有 uiview 的滚动视图

在这里我可以拖动UIView里面ScrollView,当uiview转到END RIGHTEND LEFT时,uiview在scrollview内消失,之后我必须滚动scrollview然后我才能看到uiview,这里我需要滚动SCROLLVIEW当 uiview 出现在右侧或左侧时,为此我使用了此代码但无法正常工作。

[myscrollview scrollRectToVisible:myview.frame animated:YES];
4

1 回答 1

1

在这里,我在 UIButton 上使用过(因为它已经在我的一个应用程序中使用过,我不需要再次编写整个代码)

[cropRectangleButton addTarget:self action:@selector(imageMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside];

cropRectangleButton是一个UIButton,方法imageMoved:withEvent:如下

- (IBAction) imageMoved:(id)sender withEvent:(UIEvent *)event
{
    CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];

    CGPoint prev = lastTouchDownPoint;
    lastTouchDownPoint = point;
    CGFloat diffX = point.x - prev.x;
    CGFloat diffY = point.y - prev.y;

    UIControl *button = sender;
    CGRect newFrame = button.frame;
    newFrame.origin.x += diffX;
    newFrame.origin.y += diffY;
    scrollView.contentSize = CGSizeMake(2*scrollView.frame.size.width, scrollView.frame.size.height);
    [scrollView scrollRectToVisible:newFrame animated:YES];
    button.frame = newFrame;
}

在这里,我更改了 scrollView 的 contentSize,因为测试 scrollView 是否正在滚动非常狭窄,您不需要那行代码。

当我向左拖动按钮时,scrollView 也会自动滚动到按钮框架以显示整个按钮尝试使用 UIView 实现这一点,如果不可能,只需在您的视图上放置一个透明的 UIButton 完全覆盖视图,然后您就可以执行拖 :)

于 2012-11-16T12:34:13.120 回答