wake-up-neo.net

RGB-Farbe in Xcode erstellen

Ich verwende RGB-Werte einer Farbe aus dem Fotoladen und verwende dieselben Werte in xcode. Die Werte sind. Farbe-R-160, G-97, B-5 ​​... Die Farbe in Photoshop erscheint gelblich, aber in Xcode, wenn ich sie verwendet habe

myLabel.textColor= [UIColor colorWithRed:160 green:97 blue:5 alpha:1] ;

die Farbe erscheint weißlich.

Warum passiert dieser Unterschied? 

63
amar

Ziel c

Sie müssen die Werte zwischen 0 und 1,0 angeben. Teilen Sie also die RGB-Werte durch 255.

myLabel.textColor= [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1] ;

Update:

Sie können dieses Makro auch verwenden

#define Rgb2UIColor(r, g, b)  [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]

und Sie können jede Ihrer Klassen so aufrufen

 myLabel.textColor = Rgb2UIColor(160, 97, 5);

Schnell

Dies ist die normale Farbsynax

myLabel.textColor = UIColor(red: (160/255.0), green: (97/255.0), blue: (5/255.0), alpha: 1.0) 
//The values should be between 0 to 1

Mit Makros ist Swift nicht besonders freundlich

Komplexe Makros werden in C und Objective-C verwendet, haben jedoch kein Gegenstück in Swift. Komplexe Makros sind Makros, die keine Konstanten definieren einschließlich geklammerter, funktionsähnlicher Makros. Sie verwenden komplexe Makros in C und Objective-C, um Einschränkungen bei der Typprüfung zu vermeiden oder .__ zu vermeiden. große Mengen von Boilerplate-Code erneut eingeben. Makros können jedoch Debugging und Refactoring schwierig. In Swift können Sie die Funktionen und Generika, um die gleichen Ergebnisse ohne Kompromisse zu erzielen . Daher sind die komplexen Makros in C- und Objective-C-Quelle Dateien werden für Ihren Swift-Code nicht zur Verfügung gestellt.

Also benutzen wir die Erweiterung dafür

extension UIColor {
    convenience init(_ r: Double,_ g: Double,_ b: Double,_ a: Double) {
        self.init(red: r/255, green: g/255, blue: b/255, alpha: a)
    }
}

Sie können es gerne verwenden

myLabel.textColor = UIColor(160.0, 97.0, 5.0, 1.0)
196
iPrabu

Sie haben bereits die richtige Antwort erhalten, aber wenn Ihnen die UIColor-Schnittstelle wie ich nicht gefällt, können Sie Folgendes tun:

#import "UIColor+Helper.h"
// ...
myLabel.textColor = [UIColor colorWithRGBA:0xA06105FF];

UIColor + Helper.h:

#import <UIKit/UIKit.h>

@interface UIColor (Helper)
+ (UIColor *)colorWithRGBA:(NSUInteger)color;
@end

UIColor + Helper.m:

#import "UIColor+Helper.h"

@implementation UIColor (Helper)

+ (UIColor *)colorWithRGBA:(NSUInteger)color
{
    return [UIColor colorWithRed:((color >> 24) & 0xFF) / 255.0f
                           green:((color >> 16) & 0xFF) / 255.0f
                            blue:((color >> 8) & 0xFF) / 255.0f
                           alpha:((color) & 0xFF) / 255.0f];
}

@end
25
jweyrich

Yeah.ios unterstützt den RGB-Wert nur für den Bereich zwischen 0 und 1...s close Range [0,1]

5
Allamaprabhu

Farbauswahl-Plugin für Interface Builder

Es gibt einen Nice-Farbpicker von Panic, der gut mit IB funktioniert: http://panic.com/~wade/picker/

Xcode-Plugin

Hier haben Sie eine GUI für die Farbauswahl: http://www.youtube.com/watch?v=eblRfDQM0Go

Code

UIColor *color = [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0];

Pods und Bibliotheken

Es gibt einen Nice-Pod mit dem Namen MPColorTools: https://github.com/marzapower/MPColorTools

4
hfossli

Die Werte werden durch das Bit des Bildes bestimmt. 8 Bit 0 bis 255

16 bit ... eine lächerliche Zahl.

32 Bit sind 0 bis 1

Ich verwende .004 mit 32-Bit-Bildern ... dies ergibt 1,02, wenn mit 255 multipliziert

0
user2882399