单击后保持UIButton背景更改

时间:2014-12-16 01:27:07

标签: ios xcode uibutton nsuserdefaults

我尝试将按钮的背景从background1更改为background2,当它被点击并保留在background2时,即使应用程序重新启动也是如此。

我设法做到了,但是当我重新启动应用时,背景格式不正确(background2是一个透明的圆圈),它显示了圆圈,但透明部分变成白色..

该按钮是自定义按钮。

有什么想法吗? 谢谢你们

2 个答案:

答案 0 :(得分:0)

问题出在NSUserDefaults保存过程中,我现在使用它:

  NSData *imageData = UIImagePNGRepresentation(contactImage);

而不是:

  NSData *imageData = UIImageJPEGRepresentation(contactImage, 100);

答案 1 :(得分:0)

嗨这对你有用..

- (void)viewDidLoad
{
   [super viewDidLoad];
   NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"BackgroundColor"];

   if (colorData != nil)
   {
      NSString *stringColor = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];
      CIColor *coreColor = [CIColor colorWithString:stringColor];
      UIColor *color = [UIColor colorWithCIColor:coreColor];
      [self.btnNext setBackgroundColor:color];
  }


}
- (IBAction)next:(id)sender
{
  [self.btnNext setBackgroundColor:[UIColor clearColor]];
  CGColorRef colorRef = [UIColor clearColor].CGColor;
  NSString *colorString = [CIColor colorWithCGColor:colorRef].stringRepresentation;
  NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:colorString];
  [[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"BackgroundColor"];
  [[NSUserDefaults standardUserDefaults] synchronize];
}

我已经检查了ios 7 3.5英寸屏幕它正在工作.. 但不知道其他的事情......