Ich hab mir grade einen abgebrochen ein UIColor Objekt zu erzeugen aus einem RGB Value. Bin schier verzweifelt, bis ich das hier gefunden habe. pegolon.wordpress.com/2008/11/…-with-just-one-rgb-value/ Mit dem Makro:
kann mans ganz einfach machen.
UIColor per Code
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
-
Mir ist auch nich ganz klar, das das Makro bringen soll.Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding]. -
Was gefällt Dir denn an den Methoden:
+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
- (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
nicht? -
Original von MCDan
Was gefällt Dir denn an den Methoden:
+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
- (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
nicht?
Ich tippe auf die Tatsache, 0x00FF00 in 0.0 1.0 0.0 umrechnen zu müssen.
Mag bei 0x00FF00 nicht so schlimm sein, 0xCEF012 hingegen wird spaßig.«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
Iä-86! Iä-64! Awavauatsh fthagn!
kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
-
Original von Lucas de Vil
Original von MCDan
Was gefällt Dir denn an den Methoden:
+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
- (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
nicht?
Ich tippe auf die Tatsache, 0x00FF00 in 0.0 1.0 0.0 umrechnen zu müssen.
Mag bei 0x00FF00 nicht so schlimm sein, 0xCEF012 hingegen wird spaßig.
Gibt doch überall im Netz Umrechner und der Calculator von Apple kann glaub ich auch ganz gut mit HEX.Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding]. -
Original von Lucas de Vil
Original von MCDan
Was gefällt Dir denn an den Methoden:
+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
- (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
nicht?
Ich tippe auf die Tatsache, 0x00FF00 in 0.0 1.0 0.0 umrechnen zu müssen.
Mag bei 0x00FF00 nicht so schlimm sein, 0xCEF012 hingegen wird spaßig.
Woher stammen denn die Werte? CSS?
Wieso baut man sich dann ein Makro, welches derlei Werte aus anderen Universen verarbeitet? Und wenn man das schon macht, weil es ein gewisser Standard ist, wieso verfällt man auf den Gdanken, das per Makro zu machen. Gibt es da nicht wirklich eine passende Technologie in Objective-C? Kategorien?
Der Erfinder des Makros zeigt hier nicht, dass er Objective-C wirklich verstanden hat. (Okay, das ist übertrieben. Aber dies mit einem Makro zu machen, ist schon schwer an der Sprache vorbeigefrickelt.)Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
Für Euch zum Hintergrund. Ich habe einen UIView, welcher in einem UIScrollview eingebettet ist. Wenn der Benutzer jetzt scrollt, erscheint teilweise der Hintergrund des Scrollviews. Das Ziel ist jetzt, die Hintergrundfarbe des UIView und des UIScrollView anzupassen, damit es wie ein Screen erscheint. Für den UIView kann ich die Farbe gleich im IB setzen. Den ScrollView erzeuge ich per Code, deswegen brauch ich da ne Methode. So. Jetzt gebt doch mal in Photoshop oder im Web die Farbwerte aus dem IB ein und ruft die Methoden des UIColor mit diesen Werten auf. Es ist mir nicht gelungen, dieselbe Farbe zu erzeugen. Ich habe alle möglichen RGB Profile getestet und es auch mit HUE versucht. Kein Erfolg. Das Makro klappte sofort und sah wie ein QuickWin aus. Wie macht man das mit Kategorien?
-
Original von kay
Für Euch zum Hintergrund. Ich habe einen UIView, welcher in einem UIScrollview eingebettet ist. Wenn der Benutzer jetzt scrollt, erscheint teilweise der Hintergrund des Scrollviews. Das Ziel ist jetzt, die Hintergrundfarbe des UIView und des UIScrollView anzupassen, damit es wie ein Screen erscheint. Für den UIView kann ich die Farbe gleich im IB setzen. Den ScrollView erzeuge ich per Code, deswegen brauch ich da ne Methode. So. Jetzt gebt doch mal in Photoshop oder im Web die Farbwerte aus dem IB ein und ruft die Methoden des UIColor mit diesen Werten auf. Es ist mir nicht gelungen, dieselbe Farbe zu erzeugen. Ich habe alle möglichen RGB Profile getestet und es auch mit HUE versucht. Kein Erfolg. Das Makro brachte den schnellen Erfolg. Wie macht man das mit Kategorien?
Das Makro macht nichts anderes a.s die einzelnen Bytes durch 255 zu dividieren, also auf den entsprechenden Bereich zu mappen. Das kann man auch von Hand.Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
Original von Tom9811Das Makro macht nichts anderes a.s die einzelnen Bytes durch 255 zu dividieren, also auf den entsprechenden Bereich zu mappen. Das kann man auch von Hand.
-
Original von kay
Original von Tom9811Das Makro macht nichts anderes a.s die einzelnen Bytes durch 255 zu dividieren, also auf den entsprechenden Bereich zu mappen. Das kann man auch von Hand.
Die Color-Methoden gehen meist von einem Bereich von [0.0, 1.0] aus, weil dieser neutral ist. Wieso sollte man gerade einen Bereich von 0 bis 255 verwenden? Weil heutige Computer mit 8-Bit-Bytes arbeiten? Weil heutige Graohikkarten mit 24-Bit Farbtiefe arbeiten? Wie gesagt: Hat der ne 255 verschluckt?
Original von kay
Wieso muss ich das per Hand machen?
Wieso musst du das Makro per Hand eintippen?Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
Original von Tom9811 Wieso musst du das Makro per Hand eintippen?
-
Ich habe mich zwar noch nicht so sehr mit dem Thema befasst, aber kannst du nicht die Farbe der UIView incode auslesen und der scrollview incode zuweisen? Wäre ja einfacher als aus dem Photoshop zu kopieren.Ialea iacta est
-
Versuche doch mal beim Erzeugen des UIScrollView ein myScrollView.backgroundColor = myView.backgroundColor.
-
Ist Weiss. RGBA kannst du zwischen 0 - 1.0 setzen. Oft hast du die Farben halt als (pixel)array mit 4Byte, d.h. jeder Farbwert 1Byte (char). Die musst du dann eben in floats umwandeln float = intValue* (1/255) - das macht das MakroSeminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht. -
float floatValue = (float)intValue / 255.0f;
ist besserSeminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht. -
Original von kressevadder
float floatValue = (float)intValue / 255.0f;
ist besser -
Original von kay
Original von Tom9811 Wieso musst du das Makro per Hand eintippen?
Es ist ja nicht verkehrt, Werte umzurechnen. Aber generell würde ich das wenn möglich außerhalb der Source machen.
Wenn man es haben möchte, dann sollte man sich eine Kategorie schreiben, siehe oben.Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
Original von kay
Original von kressevadder
float floatValue = (float)intValue / 255.0f;
ist besser
Nein, bist du nicht. Das zeigt sich einfach:
Oder auch nur ein wenig gefährlicherer, aber wundersamer:
Wieso wird die Funktion dreimal aufgerufen?
Makros haben Seiteneffekte, Seiteneffekte, Seiteneffekte.
Schön dürfet – auch ungetestet– sein:
Der letzte Teil des Makros expandiert dann zu:
Da IIRC & stärker bindet als | wird daraus:
und dann
also
Was macht UIColor dann eigentlich?Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
Original von kressevadder
float floatValue = (float)intValue / 255.0f;
ist besser
Im Cocoa-Kontext wäre
CGFloat floatValue = (CGFloat)intValue / 255.0f;
wohl noch besserDie Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].