代码之家  ›  专栏  ›  技术社区  ›  sagarkothari

滑杆上的菜单-iPhone在滑动时获取滑杆指针的x坐标

  •  1
  • sagarkothari  · 技术社区  · 14 年前

    可以设置最大值;a的最小值 UISlider

    • 在iPad中,日历应用程序是默认的。
    • 打开底部的日历-您可以看到日/周/月列表
    • 我想在slider上实现相同的功能。

    我很努力,但如果我能得到x坐标,我可以很容易地实现它。任何其他执行同样的建议都是最受欢迎的。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Kalle    14 年前

    从测试的UILabel开始(只需在其中写一些东西),然后向其中添加IBOulets和UISlider。接下来,为滑块的“value changed”添加一个iAction。

    然后,您需要计算两个值来确定标签应该放置在哪里——从左侧调整,以及滑块的每个值的像素数。你的 @interface 可能是这样的:

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

    - (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;
    }
    

        2
  •  0
  •   kennytm    14 年前

    我不认为这个东西是用UISlider实现的,但是你可以使用 触摸 很容易。

    在UISlider的操作中,您可以接受第二个参数。

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