2010-07-01 17 views
1

可以在iPhone中爲UISlider控件設置最小值&最小值。因此,滑塊將工作 - 好 - 好。滑動菜單 - iPhone滑動時獲取UISlider指針的x座標

首先,我將舉一個我想要實現的例子。

  • 在iPad中默認使用Calendar應用程序。
  • 打開日曆,在底部 - 您可以看到日/周/月清單
  • 當您滑動手指時,滑動時會看到一個彈出式菜單。
  • 我想在滑塊上實現相同的功能。

我在努力,但是如果我能夠得到x座標,我可以很容易地實現它。任何其他建議都是最受歡迎的。

回答

3

從UILabel開始進行測試(只需在其中寫入內容)並添加IBOulets以及UISlider。接下來,爲滑塊的「值已更改」添加一個IBAction。

然後,您需要計算兩個值來確定應放置標籤的位置 - 左側調整和滑塊每個值的像素。您的@interface可能如下所示:

@interface sliderViewController : UIViewController { 
    IBOutlet UISlider *slider; 
    IBOutlet UILabel *label; 
    float pixelsPerValue; 
    float leftAdjust; 
} 
-(IBAction) sliderValueChanged:(id)sender; 

@end 

例如, viewDidLoad:對於你的視圖控制器,你可以計算兩個浮點數。

- (void)viewDidLoad { 
    float width = slider.frame.size.width; 
    pixelsPerValue = width/(slider.maximumValue - slider.minimumValue); 
    leftAdjust = slider.frame.origin.x; 
    [super viewDidLoad]; 
} 

最後,您IBAction爲可能是這樣的:

-(IBAction) sliderValueChanged:(id)sender 
{ 
    NSLog(@"changed"); 
    CGRect frame = label.frame; 
    frame.origin.x = leftAdjust + (pixelsPerValue * slider.value); 
    label.frame = frame; 
} 

希望有所幫助。

0

我不認爲這個東西是用UISlider來實現的,但是你可以很容易地使用touch的x座標

在UISlider的操作中,您可以接受第二個參數。

-(void)action:(UISlider*)sender forEvent:(UIEvent*)event 
//        ^^^^^^^^^^^^^^^^^^^^^^^^ 

從UIEvent,你可以得到一個包含它的x,y座標的UITouch。