Moin,
ich bastle derweil mein erstes Control seit es Retina Displays gibt.
Und verzweifle.
Der Code für die Drawing-Routine ist recht simpel:
Alles anzeigen
Das Ergebnis auf dem Retina Device ist recht hässlich.
(Siehe Anhang: oben mein hässliches Control, unten das hübsche UIKit Control.)
Habs mit ausgeschaltetem AntiAliasing versucht – noch hässlicher. (klobiger schwarzer Rahmen)
Habs mit
Habs mit
Was mache ich falsch?
Wie mache ich es richtig?
ich bastle derweil mein erstes Control seit es Retina Displays gibt.
Und verzweifle.
Der Code für die Drawing-Routine ist recht simpel:
Quellcode
- - (void)drawInContext:(CGContextRef)ctx
- {
- CGRect knobFrame = CGRectInset(self.bounds, 2.0, 2.0);
- UIBezierPath *knobPath = [UIBezierPath bezierPathWithRoundedRect:knobFrame
- cornerRadius:knobFrame.size.height * self.slider.curvaceousness / 2.0];
- // 1) fill - with a subtle shadow
- CGContextSetShadowWithColor(ctx, CGSizeMake(0, 1), 1.0, [UIColor grayColor].CGColor);
- CGContextSetFillColorWithColor(ctx, self.slider.knobColour.CGColor);
- CGContextAddPath(ctx, knobPath.CGPath);
- CGContextFillPath(ctx);
- // 2) outline
- CGContextSetStrokeColorWithColor(ctx, [UIColor grayColor].CGColor);
- CGContextSetLineWidth(ctx, 0.1);
- CGContextAddPath(ctx, knobPath.CGPath);
- CGContextStrokePath(ctx);
- }
Das Ergebnis auf dem Retina Device ist recht hässlich.
(Siehe Anhang: oben mein hässliches Control, unten das hübsche UIKit Control.)
Habs mit ausgeschaltetem AntiAliasing versucht – noch hässlicher. (klobiger schwarzer Rahmen)
Habs mit
[self setScale:[[UIScreen mainScreen] scale]];
versucht – keine Änderung.Habs mit
UIGraphicsBeginImageContextWithOptions(knobFrame.size, NO, 0.0);
versucht – doppelt so groß und immer noch hässlich.Was mache ich falsch?
Wie mache ich es richtig?
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
Iä-86! Iä-64! Awavauatsh fthagn!
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