Pertanyaan Bagaimana saya bisa membuat dan menampilkan UISlider secara terprogram di iOS?


Saya menemukan kode di bawah ini dalam dokumentasi Apple dan menambahkannya ke saya viewDidLoad metode tetapi slider tidak muncul ketika saya menjalankan kode.

CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
UISlider *slider = [[UISlider alloc] initWithFrame:frame];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue = 50.0;
slider.continuous = YES;
slider.value = 25.0;

39
2017-10-23 22:58


asal


Jawaban:


Anda perlu menambahkan slider ke dalam hierarki tampilan Anda. Menambahkan [self.view addSubview:slider]; dan seharusnya berhasil.


26
2017-10-23 23:01



Coba Kode ini:

Buat slider baru

-(IBAction)mySlider
{ 
    CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
    UISlider *slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = 50.0;
    slider.continuous = YES;
    slider.value = 25.0;
    [self.view addSubview:slider];
}

Aksi Slider

-(void)sliderAction:(id)sender
{
    UISlider *slider = (UISlider*)sender;
    float value = slider.value;
    //-- Do further actions
}

22
2017-12-10 11:21



Menambahkan ke tampilan melalui [self.view addSubview: slider] SEBELUMNYA SEBELUMNYA DISEBUT - adalah penting.

tidak terlihat UNTUK SAYA di: CGRect frame = CGRectMake (0,0, 0,0, 200,0, 10,0);

Anda mungkin harus menurunkannya sedikit dan mungkin mendapatkannya dari margin kiri.

mungkin? CGRect frame = CGRectMake (5.0, 10.0, 200.0, 10.0);

Untuk ios 6 dan yang lebih baru Anda harus benar-benar menambahkan ini untuk melihat apakah memuat juga (sehingga Anda dapat melihatnya - bahkan jika Anda menurunkan bingkai)

  if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
  {
      self.edgesForExtendedLayout=NO;
  }

0
2017-09-07 20:36