gpt4 book ai didi

ios - 我可以将 UIGraphics CurrentContext 设置为 iOS 中的 Oriented 属性吗

转载 作者:行者123 更新时间:2023-11-29 03:18:13 24 4
gpt4 key购买 nike

我正在使用 Rubymotion 而不是 Objective-C/Xcode 编写应用程序。

我发现很多 Objective-C 的编写方式更像是过程代码,而不是面向对象,并且我试图让我的代码比大多数示例中看到的更加整洁和简单。

也就是说,是否有任何原因导致我无法将自定义 View 的 CurrentContext 设置为类中的方法或属性?即:

def drawRect(rect)
context = UIGraphicsGetCurrentContext()
redColor = UIColor.colorWithRed(1.0, green: 0.0, blue: 0.0, alpha:1.0)
CGContextSetFillColorWithColor(context, redColor.CGColor)
CGContextFillRect(context, self.bounds)

# more drawing here ...
end

会变成:

def drawRect(rect)
setBackgroundRed
# call more private methods to draw other stuff here
end

private

def context
@context ||= UIGraphicsGetCurrentContext()
end

def setBackgroundRed
CGContextSetFillColorWithColor(context, redColor)
CGContextFillRect(context, bounds)
end

def redColor
UIColor.colorWithRed(1.0, green: 0.0, blue: 0.0, alpha:1.0).CGColor
end

谢谢!

最佳答案

不建议在对 drawRect 的调用中存储上下文指针。对 drawRect 的每次调用都应自行调用 UIGraphicsGetCurrentContext() 以获取上下文指针。从那里,将它传递到需要去的地方。您可以执行以下操作:

def drawRect(rect)
context = UIGraphicsGetCurrentContext()
setBackgroundRed(context)
# call more private methods to draw other stuff here
end

private

def setBackgroundRed(context)
CGContextSetFillColorWithColor(context, redColor)
CGContextFillRect(context, bounds)
end

def redColor
UIColor.colorWithRed(1.0, green: 0.0, blue: 0.0, alpha:1.0).CGColor
end

关于ios - 我可以将 UIGraphics CurrentContext 设置为 iOS 中的 Oriented 属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427848/

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