UIImage有一个只读属性CGImage。 我必须读取它的像素到一个内存块并编辑它们,然后创build一个新的UIImage来replace旧的。 我想知道是否有绕过只读属性和直接编辑这些像素的方法。 谢谢。 谢谢大家。 我find了一个办法。 用这些方法写一个类: -(void)preProcess:(UIImage*)srcImage { m_Context = …// Created by calling CGBitmapContextCreate(…) … CGContextDrawImage(m_Context, rect, srcImage.CGImage); m_Bits = (unsigned char*)CGBitmapContextGetData (mContext); } -(void)postProcess { CGContextRelease(m_Context); free(m_Bits); } -(UIImage*)doProcess:(CGPoint)pt {// just a example unsigned char* ppxl = m_Bits + … // do something… CGImageRef imRef = CGBitmapContextCreateImage(mContext); return [UIImage imageWithCGImage:imRef]; } 而preProcess和postProcess只被调用一次。
如何在清除文本的UITextField的右侧添加这个小小的“X”button? 我无法在iPhone OS 2.2 SDK的Interface Builder中find添加此子控件的属性。 注意:在Xcode 4.x和更高版本(iPhone 3.0 SDK和更高版本)中,可以在Interface Builder中执行此操作。
我非常希望将自己的颜色设置为UITextField边框。 但到目前为止,我只能找出如何改变边框线条样式。 我用背景属性来设置背景颜色: self.textField.backgroundColor = textFieldColor; 但是我也必须改变UITextField边框的颜色。 而我的问题是关于如何改变边框的颜色。
我有一个名为finalScoreView的UIView的以下CATransition,它使得它从顶部进入屏幕: CATransition *animation = [CATransition animation]; animation.duration = 0.2; animation.type = kCATransitionPush; animation.subtype = kCATransitionFromBottom; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; [gameOver.layer addAnimation:animation forKey:@"changeTextTransition"]; [finalScoreView.layer addAnimation:animation forKey:@"changeTextTransition"]; 我该如何做到这一点,所以它一旦弹下来,然后停下来呢? 它应该仍然从顶部进入屏幕,但是当它下降时会弹起。 任何帮助将不胜感激,谢谢!
最近我一直在想,一个iOS应用程序只有一个UIWindow的事实。 创build另一个UIWindow并将其放置在屏幕上似乎没有问题。 我的问题有点含糊,但我感兴趣的是: 我可以用第二个UIWindow实现其他方式无法完成的事情? 使用多个UIWindow实例时会出现什么问题? 我看到人们使用第二个UIWindow在iPhone上显示像视图一样的popup窗口。 这是做这件事的好方法吗? 为什么? 为什么不? 还有其他的例子,让另一个UIWindow变得非常有意义吗? 这不是我错过了什么。 我从来没有觉得需要创build另一个UIWindow实例,但也许它会允许做我不知道的惊人的事情! 🙂 我希望它可以帮助我解决这个问题:我需要添加一个“覆盖视图”,无论目前显示。 如果已经存在一个或多个模态控制器,它也应该工作。 如果我添加一个UIView到根控制器的视图,模式控制器坐在上面,所以popup控制器。 如果我以模态方式呈现封面视图,并且已经有模式控制器,则只覆盖屏幕的一部分。
正确的例子: – (void)dealloc { [viewController release]; [window release]; [super dealloc]; } 错误的例子: – (void)dealloc { [super dealloc]; [viewController release]; [window release]; } 同样,在重写一个方法的时候,我会首先调用super的方法实现,在这种情况下,苹果总是调用[super dealloc]。 为什么?
所以,键盘键盘默认没有“完成”或“下一步”button,所以我想添加一个。 在iOS 6和更低版本中,有一些技巧可以在键盘上添加一个button,但是它们在iOS 7中似乎不起作用。 首先我订阅显示通知的键盘 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 然后,我尝试在键盘显示时添加一个button: – (void)keyboardWillShow:(NSNotification *)note { // create custom button UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeSystem]; doneButton.frame = CGRectMake(0, 50, 106, 53); doneButton.adjustsImageWhenHighlighted = NO; [doneButton setTitle:@"Done" forState:UIControlStateNormal]; [doneButton addTarget:self action:@selector(dismissKeyboard) forControlEvents:UIControlEventTouchUpInside]; // locate keyboard view UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; UIView* keyboard; for(int […]
我有一大堆用于单元格图像视图的图像,它们都不大于50×50。 例如40×50,50×32,20×37 …… 当我加载表视图时,由于图像的宽度变化,文本不排列。 此外,我希望小图像出现在中心,而不是在左边。 这是我在我的'cellForRowAtIndexPath'方法里面的代码 cell.imageView.autoresizingMask = ( UIViewAutoresizingNone ); cell.imageView.autoresizesSubviews = NO; cell.imageView.contentMode = UIViewContentModeCenter; cell.imageView.bounds = CGRectMake(0, 0, 50, 50); cell.imageView.frame = CGRectMake(0, 0, 50, 50); cell.imageView.image = [UIImage imageWithData: imageData]; 正如你可以看到我已经尝试了一些东西,但没有一个工作。
我想改变我的UIAlertView的背景颜色,但是这看起来没有颜色属性。
我正在使用一个自定义绘制的UITableViewCell,包括单元的accessoryView相同。 我的设置为accessoryView发生像这样的事情: UIImage *accessoryImage = [UIImage imageNamed:@"accessoryDisclosure.png"]; UIImageView *accImageView = [[UIImageView alloc] initWithImage:accessoryImage]; accImageView.userInteractionEnabled = YES; [accImageView setFrame:CGRectMake(0, 0, 28.0, 28.0)]; self.accessoryView = accImageView; [accImageView release]; 另外,当单元格初始化时,使用initWithFrame:reuseIdentifier:我确保设置以下属性: self.userInteractionEnabled = YES; 不幸的是在我的UITableViewDelegate中,我的tableView:accessoryButtonTappedForRowWithIndexPath:方法(尝试重复10次)没有被触发。 代表确实连线正确。 什么可能会丢失? 谢谢大家。