gpt4 book ai didi

iphone - 改变图案图像的相位

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:06 25 4
gpt4 key购买 nike

我使用图案图像作为 UITableViewCell 的背景颜色

cell.backgroundColor = [UIColor colorWithPatternImage[UIImage imageNamed:@"image.png"]]

但是,我希望图案图像的底部与单元格的底部对齐。默认情况下,图像的左上角与单元格的原点对齐。我需要这个的原因是因为单元格的高度是可变的,但无论高度如何,底部都需要显示相同。

Apple 文档指定为了更改图案图像的相位,颜色 ([UIColor colorWothPatternImage]) 应该设为当前颜色,然后应该调用 CGContextSetPatternPhase。但是,我不确定如何在 cellForRowAtIndexPath 中设置 UITableViewCell 的背景颜色的上下文中使用此方法。

我意识到之前有人问过这个问题,但它没有回答我的问题。

最佳答案

我看到很久以前有人问过这个问题,您可能已经找到了解决方案,但我无意中遇到了同样的问题并找到了解决方案,并认为我应该将其发布以供将来引用。不止一个人为同一件事头疼是没有意义的:)

首先,您必须子类化任何您希望将 UIColor 移入的 View 。因此在本例中,UITableViewCell

..最后,在drawRect: 方法中使用此代码来移动原点。大功告成!

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGSize phase = CGSizeMake(0, self.bounds.size.height); // CHANGE THESE VALUES TO WHATEVER X/Y SHIFT YOU NEED
CGContextSetPatternPhase(context, phase);

CGColorRef color = self.backgroundColor.CGColor;
CGContextSetFillColorWithColor(context, color);
CGContextFillRect(context, self.bounds);

CGContextRestoreGState(context);

移位通过将原点移动“phase”的宽度和高度值来实现。

希望对您有所帮助! (不要忘记 [super drawRect:]!)

关于iphone - 改变图案图像的相位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com