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;   //系统函数。
} 为什么画不出来;

解决方案 »

  1.   

    为何画不出来?很可能调用代码的地方不对。
    我试验了,代码本身没有问题,我的操作步骤如下,希望对你有帮助。
    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.是否输入错的文件名称?当然这个一般不会出现。祝好运。
      

  2.   

    谢谢 ,非常感谢,我就是想写个函数里面包括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;  //系统函数
    }
    这个函数画牌,每出一张牌,我就要调用一次,只有把那个系统函数放在自己的函数里面,才可以。
    谢谢了,希望你能明白我的用意。
      

  3.   

    关于这个,我也没有什么好的办法,不过我的建议如下,请使用uiimageview,这样你就可以在viewcontroller中任何地方调用了,你考虑一下。当然这个方法会有一个性能的问题,那么你可以使用opengles技术。
      

  4.   

    能不能自己写个函数,把UIImageView的函数包括进去,我就是想设置4个参数,(大小),然后直接调用这个函数,我已经研究了2个星期了,还是做不出来,这个月说不定都被炒了,
      

  5.   

    绝对可以啊,你自己想想如何实现,如果还不行,你明天发信给我。[email protected]
      

  6.   

    代码已经发给楼主,请不要share给第三人,多谢!