iphone drawRect 不能画出来

iOS 码拜 6年前 (2015-05-09) 161次浏览 0个评论
 

1.h
 -(void) DrawMyRect;
1.m
-(void) drawMyRect
{
CGRect rect=CGRectMake(20.0f,20,0f,20.0f,20.0f);
UIImage *image=[UIImage imageNamed:@”China.gif”];
[image drawInRect:rect];
drawRect:rect;   //系统函数。
}

 为什么画不出来;

20分
为何画不出来?很可能调用代码的地方不对。
我试验了,代码本身没有问题,我的操作步骤如下,希望对你有帮助。
1.生成一个viewbase的工程,
2.添加一个MyView的类,这个类继承自UIView.
3.在MyView的函数-(void)drawRect:(CGRect)rect中加入下面的代码
CGRect frame=CGRectMake(20.0f,20,0f,20.0f,20.0f);
UIImage *image=[UIImage imageNamed:@”China.gif”];
[image drawInRect:frame];

4.在你的工程的缺省生成的viewController类中的-(void)viewDidLoad函数中加入如下的代码
MyView *_mv = [[MyView alloc] initWithFrame:CGRectMake(0,0,320,480)];
[self.view addSubview:_mv];

5.编译一下工程

我想一下几个方面需要注意:
1.你的代码在哪里调用?你不能在viewcontroller中调用这个代码,我个人觉得必须在一个view类的drawRect中使用。
2.你的gif文件是否有问题?因为我一直png图片格式,所以不是很清楚是否所有的gif都支持,那么你可否编辑你的xib,在上面放入一个image view控件,然后使用属性指定要用的gif文件,看看能否显示出来。
3.是否输入错的文件名称?当然这个一般不会出现。

祝好运。

谢谢 ,非常感谢,我就是想写个函数里面包括drawRect,因为很多地方都要调用这个函数来画图,大小,图片都需要改,所以要5个参数。如果直接用drawRect来画,那么指令一下,全部都要重画。你看我的函数,希望你能明白我的用意,谢谢了。
+(void) DrawCard:(float) ptx:(float) pty:(int) mx :(int) my : (NSString*) string
{
CGRect rect=CGRectMake(ptx+mx*5,pty+my*5,20,20);
UIImage *image=[UIImage imageNamed(@”string”)];
 image.drawInRect(rect) ;
drawRect:rect;  //系统函数
}
这个函数画牌,每出一张牌,我就要调用一次,只有把那个系统函数放在自己的函数里面,才可以。
谢谢了,希望你能明白我的用意。
关于这个,我也没有什么好的办法,不过我的建议如下,请使用uiimageview,这样你就可以在viewcontroller中任何地方调用了,你考虑一下。当然这个方法会有一个性能的问题,那么你可以使用opengles技术。
能不能自己写个函数,把UIImageView的函数包括进去,我就是想设置4个参数,(大小),然后直接调用这个函数,我已经研究了2个星期了,还是做不出来,这个月说不定都被炒了,
绝对可以啊,你自己想想如何实现,如果还不行,你明天发信给我。nicktc78@hotmail.com
代码已经发给楼主,请不要share给第三人,多谢!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明iphone drawRect 不能画出来
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!