【问题标题】:View wont update image(iphone app)查看不会更新图片(iphone app)
【发布时间】:2011-03-12 10:41:37
【问题描述】:

我有一个简单的 UIView *myView 设置如下

myView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", r]];

这需要索引 r 并获取该图像,在我的两个 IBAction 方法中都可以正常工作

-(IBAction) previousImageSelector{
if (r != 0)
    r = r - 1;
NSLog(@"r is%d",r);
myView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", r]];

}

我目前允许用户使用他们输入的标题将图片保存到他们的收藏夹列表中。这一切正常,图像的名称和索引号保存到 mutableArray,当用户选择表格项时,麻烦就来了。

我的应用正确检索图像的索引,将索引设置为该索引,然后调用

myView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", r]];

但由于某种原因,这不会更新视图,只会更新计数器,然后如果用户选择下一个或上一个图像,则在当前计数器(应该加载的图像)加载之后的图像。

是否有刷新方法或设置不同的方法?

我不明白为什么相同的方法在下一个和上一个图像 IBActions 中有效,但在选择表格行后就不行。

请指教。

问候

【问题讨论】:

  • 试试 [myView setNeedsDisplay];
  • 我试过了,好像没用。 :(
  • 这些消息都是由同一个对象发送的吗?您是否尝试在无法更新时检查 myView 的值?
  • 我现在看到,在 IB 中没有改变任何东西之后,就是找不到我的观点?还是我的另一种方法?我不知道该怎么办。问候

标签: iphone objective-c uitableview uiviewcontroller


【解决方案1】:

您将myView.image = [UIImage imageNamed... 代码放在哪个方法中?

大概你需要做的是:

myView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", r]];
[myView setNeedsDisplay];

这告诉核心动画用当前数据(即你刚刚设置的新图像)重绘视图。

【讨论】:

  • 我把设置图像的代码放在 didSelectRowAtIndexPath: 方法中,我尝试了 setNeedsDisplay 方法,它没有改变任何东西。问候
  • 你在didSelectRowAtIndexPath:方法上更新了什么视图?即,您的代码中的myView 到底是什么?
  • myView 在其他类中尝试访问时为空。
猜你喜欢
  • 2011-11-15
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多