用图像生成UIView

时间:2014-01-10 21:43:37

标签: ios objective-c cocoa-touch

我有以下方法,由于某种原因不显示图像:

- (void)drawRect:(CGRect)rect
{
    float cornerRadius = self.bounds.size.width/RADIUS_RATIO;
    UIBezierPath *roundedRect = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:cornerRadius];
    [roundedRect addClip];
    [[UIColor whiteColor] setFill];
    UIRectFill(self.bounds);
    [[UIColor blackColor] setStroke];
    [roundedRect stroke];

    CGRect imageRect = CGRectInset(self.bounds,
                                   self.bounds.size.width * 0.5,
                                   self.bounds.size.height * 0.5);
    if (self.faceUp)
    {
        UIImage *cardFace = [UIImage imageNamed:[NSString stringWithFormat:
                                                 @"%@%@.png",[self rankAsStrings],self.suit]];
        if (cardFace)
        {
            NSLog(@"%@%@.png",[self rankAsStrings],self.suit);
            [cardFace drawInRect:imageRect];

        } else {
            NSLog(@"No Image Found: %@%@.png",[self rankAsStrings],self.suit);
        }

    } else {
        [[UIImage imageNamed:@"Back.png"] drawInRect:imageRect];
    }
}

有人可以对此有所了解吗?

P.S。图像存在,我得到“NSLog(@”%@%@。png“,[self rankAsStrings],self.suit);”控制台中的消息。

TIA

2 个答案:

答案 0 :(得分:1)

我认为你的imageRect有0.0宽度和0.0高度。检查CGRectInset方法的文档 - 它将原始矩形减少2 * dx和2 * dy。

答案 1 :(得分:0)

我会这样做的:

myView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"MyProfilePic.png"]];