UISegmentedControl Farbe ändern

Die meisten iPhone Interface Objekte sind farblich anpassbar an den gewünschten Look. Ein UISegmentedControl jedoch lässt sich zumindest über den Interface Builder nicht so schön „stylen“. Wie kann eine farbliche Anpassung geschehen, ohne die komplette Funktionalität mit UIButtons nachbauen zu müssen?

Die Lösung steckt in UISegmentedControlStyleBar und einem händischen Eingreifen in das Design dessen!

CGRect frame = CGRectMake( 0,0,100,40);
mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
mySegmentedControl.frame = frame;
mySegmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
mySegmentedControl.selectedSegmentIndex = selectedAttributeIndex;
mySegmentedControl.backgroundColor=[UIColor redColor];
[mySegmentedControl setTintColor:UIColor blueColor];

Alternativ kann die UIColor natürlich auch folgendermaßen gesetzt werden:

[UIColor colorWithRed:.5 green:.1 blue:.2 alpha:1]

An dieser Stelle sei auf die ClassReference von Apple verwiesen: UIColor zusätzlich passend zu der Thematik: UINavigationBar Color ändern und ein UIColor Cheatsheet

struct NSString expected struct NSMutableString

Bei einer solchen Ausgangssituation:

NSMutableString *currentElementValue;

if(currentElementValue==nil){
NSlog(@“nil Value“);
currentElementValue=@““;
}

Wirft XCode folgenden Fehler:

warning: incompatible Objective-C types assigning ’struct NSString *‘, expected ’struct NSMutableString *‘

Lösung:

currentElementValue=[[[NSMutableString alloc] initWithString:@““]autorelease];

uiimage uiimageview drehen rotieren

Wer ein UIImage drehen möchte, wird merken, dass es nicht funktioniert, was auch sinnvoll ist. Im Grunde möchte man ja die umschließende UIImageView drehen.

Dies funktioniert mit dem folgenden Snippet:

CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI_2);
[konkreteImageView setTransform:rotate];

Wobei der gewünschte Winkel durch eine Multiplikation von PI zustande kommt.

Neuregelung 0180 Servicenummern

Heise berichtet heute über eine Neuregelung der Bundesnetzagentur. Diese erklärt die gängige Praxis, 0180 Nummern mit dem Zusatz „Mobilfunkpreise können abweichen“ für nicht zulässig. Die Kosten aus den Mobilfunknetzen müssen vielmehr gesondert aufgeschlüsselt werden.

Zugleich werden die 0180er Dienste künftig unter dem Namen „Service-Dienste“ geführt. Was eine Weitergabe eines Einnahmen-Anteils an den Betreiber der Hotline ermöglicht.

In diesem Zusammenhang ist ein netter Dienst zum empfehlen: 0180.info liefert zu einem Großteil der kostenpflichtigen Hotlines eine kostenfreie Alternative listet. Der Dienst wird dabei von den Nutzern gepflegt und daher meist aktuell.