簡體   English   中英

沿x和y軸移動UIImage

[英]Move UIImage along x- and y-axis

我用旋鈕創建了一個控件。 該旋鈕應該沿x軸和y軸移動。
我已經實現了以下方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

我知道,必須在touchMoved實現限制沿一個軸的移動。 當我限制沿x軸的移動時,一切都會按預期進行。 但是,如何同時使y軸運動呢? 當啟用所述第二軸,所述旋鈕的移動並不局限於用於這種兩軸。 這是touchMoved實現的一部分:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint currentLocation = [touch locationInView:self.view];
    CGPoint centerPoint = _triggerCap.center;
    CGPoint selectionTriggerCenter = _selectionTrigger.center;


    double distance = ({double d1 = centerPoint.x - selectionTriggerCenter.x, d2 = centerPoint.y - selectionTriggerCenter.y; sqrt(d1 * d1 + d2 * d2); });
    if (distance < 100.0) {
        if (fabsf(selectionTriggerCenter.y - currentLocation.y) > 5) {
            centerPoint.y = currentLocation.y;
            _triggerCap.center = centerPoint;

有人可以給我一個提示,如何允許沿這兩個軸的運動嗎?

我想到的最快的方法是,

touchesBegan ,記錄第一次在旋鈕內的觸摸的位置。 然后,在touchesMoved ,等到與第一次觸摸之間的距離至少達到某個最小距離(也許15像素-播放並查看效果最好)。 檢查是否在第一次觸摸時沿x方向或y方向更遠。 這將確定在當前觸摸順序的其余部分中應限制在哪個軸運動。 設置一個標志以指示該軸,然后從此開始,將已經用於限制運動的代碼限制在單個軸上。 touchesEnded或旋鈕返回到距軸的交點一定距離內時重置標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM