Пересоздать UISwitch - PullRequest
       15

Пересоздать UISwitch

1 голос
/ 27 августа 2011

Моему клиенту не нравится глянец на iOS 5 UISwitch, и он хочет, чтобы я создал не глянцевую версию, используя некоторые изображения.Однако я не знаю, как мне это сделать.

Я создал подкласс UIView, и я не знаю, что делать дальше.

Есть предложения относительно того, что мне нужноделать дальше?

Ответы [ 3 ]

8 голосов
/ 27 августа 2011

Вы можете воссоздать UISwitch с помощью CoreGraphics (без использования изображений).

Взгляните на это: DCRoundSwitch

DCRoundSwitch разработан как капля взамена для UISwitch.

В любом случае вы должны создать UIControl подкласс!

2 голосов
/ 28 августа 2011

Есть несколько способов сделать то, что вы хотите. Один из способов - использовать UIImageView и просто переключать изображение, когда пользователь нажимает на элемент управления.

Что-то вроде:

-(void) loadView
{
  [super loadView];

  UIImageView *image1 = [UIImage imageNamed:@"image1-from-client"];
  UIImageView *imageView = [[[UIImageView alloc] initWithImage:image1] autorelease];
  imageView.userInteractionEnabled = YES;
  [self.view addSubview:imageView];

  // detect the tap
  UITapGestureRecognizer *tapRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)] autorelease];
  [imageView addGestureRecognizer:tapRecognizer];
}

// this gets called when the user taps
-(void) tap:(UIGestureRecognizer*)gesture
{
  UIImageView *viewTapped = (UIImageView*)gesture.view;
  if ( viewTapped.tag == 0 )
  {
     viewTapped.tag = 1;
     viewTapped.image = [UIImage imageNamed:@"image2-from-client"];
  }
  else
  {
     viewTapped.tag = 0;
     viewTapped.image = [UIImage imageNamed:@"image1-from-client"];
  }
}
0 голосов
/ 11 июня 2013

Вы можете воссоздать пользовательский UISwitch, создав подкласс UIControl.Затем вы можете использовать обычные UIViews для создания практически любого эффекта, который вы хотите.Вы можете посмотреть, посмотрите на SevenSwitch.Пользовательская замена UISwitch, которую я создал.Он не глянцевый и цвета могут быть настроены по вашему вкусу.

https://github.com/bvogelzang/SevenSwitch

...