【发布时间】:2013-03-11 08:35:20
【问题描述】:
简单代码在这里:
自定义 MyButton.h
@interface PaiLifeReadingListButton : UIButton
@property (strong, nonatomic) UIImageView *logoImageView;
@end
自定义 MyButton.m
@implementation PaiLifeReadingListButton
@synthesize logoImageView = _logoImageView;
-(id)init
{
_logoImageView = [[UIImageView alloc] initWithFrame:CGRectMake(33.0, 20.0, 80.0, 80.0)];
[_logoImageView setImage:[UIImage imageNamed:@"pic"]];
[self addSubview: _logoImageView];
}
@end
自定义 MyView.h:
@property (strong, nonatomic) Mybutton *mybutton;
自定义 MyView.m:
-(id) init
{
myButton = [[MyButton alloc] init];
[self addSubview:myButton];
}
ViewController.m:
@synthesize myView;
- (void)viewDidLoad
{
myView = [[Myview alloc] init];
[myView.myButton addTarget:self action:@selector(pressed:) forControlEvents:UIControlEventTouchDown];
self.view = myView;
}
-(void)pressed : (MyButton *)button
{
UIImageView *newImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"other-pic"] highlightedImage:nil];
myView.myButton.logImageView = newImageView;
[self.view setNeedsDisplay]; //----this does not work
}
当我按下按钮时,图像视图不会改变。我怎样才能解决这个问题? 非常感谢!
【问题讨论】:
-
设置newImageView.frame = logImageView.frame。不需要调用setNeedsDisplay。
-
button是什么,myButton是在哪里添加的? -
@MidhunMP 对不起,我犯了一个错误,我更改了代码。
-
@dhcdht 不,它对我不起作用。
-
这也不是覆盖初始化器的最佳方法,在这种情况下,您应该覆盖指定的初始化器 (-initWithFrame:)
标签: ios uiview setneedsdisplay