Welche Eigenschaften kann ich über einen UIAppearance-Proxy festlegen?
78
Welche Eigenschaften kann ich über einen UIAppearance-Proxy festlegen? In der UIKit-Dokumentation von Apple sind diese nicht aufgeführt. Gibt es eine Liste dieser Eigenschaften?
Mattt Thompson lieferte einen großartigen Artikel zu diesem Thema auf NSHipster: nshipster.com/uiappearance
Pierre
Antworten:
212
Eigenschaften, die über UIAppearance festgelegt werden können, sind UI_APPEARANCE_SELECTORin der entsprechenden Header-Datei mit gekennzeichnet.
Um eine Liste von Eigenschaften zu generieren, die mit Tags versehen sind UI_APPEARANCE_SELECTOR, können Sie die folgenden Unix-Befehle in einem Terminal verwenden:
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers
grep -H UI_APPEARANCE_SELECTOR ./* | sed 's/ __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0) UI_APPEARANCE_SELECTOR;//'
Hier ist eine Liste, die ich mit den obigen Befehlen zusammengestellt habe. Dies ist für das 5.0 SDK. Die entsprechenden Getter-Methoden wurden der Kürze halber weggelassen.
Ich bin überrascht, dass UIButtones keine UI_APPEARANCE_SELECTOREigenschaften hat, aber dem UIAppearanceProtokoll entspricht. Ist das ein Versehen von Apple?
Emile Cormier
3
Ich habe nach einer solchen Liste gesucht, ohne sie zu finden. Das UI_APPEARANCE_SELECTOR-Makro scheint auch nicht die ganze Geschichte zu sein, da UIView.h es nicht verwendet (mindestens 5.0) und dennoch der folgende Code funktioniert: [[UIView-Erscheinungsbild] setBackgroundColor: [UIColor redColor]];
Phillip Mills
2
Mit dem App Store Xcode und iOS 5.1 lautet der Headerpfad jetzt: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit. Framework / Header
Erik
2
Verwenden Sie xcode-select --print-pathdiese Option , um den Pfad zum Entwicklerverzeichnis abzurufen.
Pascal
für XCode 4.5 ist es: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/
Antworten:
Eigenschaften, die über UIAppearance festgelegt werden können, sind
UI_APPEARANCE_SELECTOR
in der entsprechenden Header-Datei mit gekennzeichnet.Um eine Liste von Eigenschaften zu generieren, die mit Tags versehen sind
UI_APPEARANCE_SELECTOR
, können Sie die folgenden Unix-Befehle in einem Terminal verwenden:cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers grep -H UI_APPEARANCE_SELECTOR ./* | sed 's/ __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0) UI_APPEARANCE_SELECTOR;//'
Hier ist eine Liste, die ich mit den obigen Befehlen zusammengestellt habe. Dies ist für das 5.0 SDK. Die entsprechenden Getter-Methoden wurden der Kürze halber weggelassen.
UIActivityIndicatorView
@property (readwrite, nonatomic, retain) UIColor *color
UIBarButtonItem
@property(nonatomic,retain) UIColor *tintColor - (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics - (void)setBackgroundVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics - (void)setTitlePositionAdjustment:(UIOffset)adjustment forBarMetrics:(UIBarMetrics)barMetrics - (void)setBackButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics - (void)setBackButtonTitlePositionAdjustment:(UIOffset)adjustment forBarMetrics:(UIBarMetrics)barMetrics - (void)setBackButtonBackgroundVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics [iOS 6.0] - (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state style:(UIBarButtonItemStyle)style barMetrics:(UIBarMetrics)barMetrics [iOS 6.0]
UIBarItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state
UINavigationBar
@property(nonatomic,retain) UIColor *tintColor @property(nonatomic,copy) NSDictionary *titleTextAttributes - (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics - (void)setTitleVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics [iOS 6.0] @property(nonatomic,retain) UIImage *shadowImage [iOS 7.0] @property(nonatomic,retain) UIColor *barTintColor - (void)setBackgroundImage:(UIImage *)backgroundImage forBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics - (UIImage *)backgroundImageForBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics @property(nonatomic,retain) UIImage *backIndicatorImage @property(nonatomic,retain) UIImage *backIndicatorTransitionMaskImage
UIPageControl
[iOS 6.0] @property(nonatomic,retain) UIColor *pageIndicatorTintColor @property(nonatomic,retain) UIColor *currentPageIndicatorTintColor
UIProgressView
@property(nonatomic, retain) UIColor* progressTintColor @property(nonatomic, retain) UIColor* trackTintColor @property(nonatomic, retain) UIImage* progressImage @property(nonatomic, retain) UIImage* trackImage
UIRefreshControl
[iOS 6.0] @property (nonatomic, retain) UIColor *tintColor @property (nonatomic, retain) NSAttributedString *attributedTitle
UISearchBar
@property(nonatomic,retain) UIImage *backgroundImage @property(nonatomic,retain) UIImage *scopeBarBackgroundImage @property(nonatomic) UIOffset searchFieldBackgroundPositionAdjustment @property(nonatomic) UIOffset searchTextPositionAdjustment - (void)setSearchFieldBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state - (void)setImage:(UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state - (void)setScopeBarButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state - (void)setScopeBarButtonDividerImage:(UIImage *)dividerImage forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState - (void)setScopeBarButtonTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state - (void)setPositionAdjustment:(UIOffset)adjustment forSearchBarIcon:(UISearchBarIcon)icon [iOS 7.0] @property(nonatomic,retain) UIColor *barTintColor - (void)setBackgroundImage:(UIImage *)backgroundImage forBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics - (UIImage *)backgroundImageForBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics
UISegmentedControl
@property(nonatomic,retain) UIColor *tintColor UI_APPEARANCE_SELECTOR; - (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics - (void)setDividerImage:(UIImage *)dividerImage forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState barMetrics:(UIBarMetrics)barMetrics - (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state - (void)setContentPositionAdjustment:(UIOffset)adjustment forSegmentType:(UISegmentedControlSegment)leftCenterRightOrAlone barMetrics:(UIBarMetrics)barMetrics
UISlider
@property(nonatomic,retain) UIColor *minimumTrackTintColor @property(nonatomic,retain) UIColor *maximumTrackTintColor @property(nonatomic,retain) UIColor *thumbTintColor
UIStepper
[iOS 6.0] @property(nonatomic,retain) UIColor *tintColor - (void)setBackgroundImage:(UIImage*)image forState:(UIControlState)state - (void)setDividerImage:(UIImage*)image forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState - (void)setIncrementImage:(UIImage *)image forState:(UIControlState)state - (void)setDecrementImage:(UIImage *)image forState:(UIControlState)state
UISwitch
@property(nonatomic, retain) UIColor* onTintColor [iOS 6.0] @property(nonatomic, retain) UIColor *tintColor @property(nonatomic, retain) UIColor *thumbTintColor @property(nonatomic, retain) UIImage *onImage @property(nonatomic, retain) UIImage *offImage
UITabBar
@property(nonatomic,retain) UIColor *tintColor @property(nonatomic,retain) UIColor *selectedImageTintColor @property(nonatomic,retain) UIImage *backgroundImage @property(nonatomic,retain) UIImage *selectionIndicatorImage [iOS 6.0] @property(nonatomic,retain) UIImage *shadowImage [iOS 7.0] @property(nonatomic,retain) UIColor *barTintColor @property(nonatomic) UITabBarItemPositioning itemPositioning @property(nonatomic) CGFloat itemWidth @property(nonatomic) CGFloat itemSpacing @property(nonatomic) UIBarStyle barStyle
UITabBarItem
- (void)setTitlePositionAdjustment:(UIOffset)adjustment
UITableView
[iOS 6.0] @property(nonatomic, retain) UIColor *sectionIndexColor @property(nonatomic, retain) UIColor *sectionIndexTrackingBackgroundColor [iOS 7.0] @property (nonatomic) UIEdgeInsets separatorInset @property(nonatomic, retain) UIColor *sectionIndexBackgroundColor
UITableViewCell
[iOS 7.0] @property (nonatomic) UIEdgeInsets separatorInset
UITableViewHeaderFooterView
[iOS 6.0] @property(nonatomic, retain) UIColor *tintColor
UIToolbar
@property(nonatomic,retain) UIColor *tintColor; - (void)setBackgroundImage:(UIImage *)backgroundImage forToolbarPosition:(UIToolbarPosition)topOrBottom barMetrics:(UIBarMetrics)barMetrics [iOS 6.0] - (void)setShadowImage:(UIImage *)shadowImage forToolbarPosition:(UIToolbarPosition)topOrBottom [iOS 7.0] @property(nonatomic,retain) UIColor *barTintColor
(3. Juli 2012) : Diese Liste wurde bis zur neuesten Version von XCode (4.3.3) nicht geändert.
(12. März 2013) : Liste für SDK 6.1 aktualisiert. Eigenschaften, die für iOS 6.0 (oder höher) gelten, werden unter dem
[iOS 6.0]
Tag aufgelistet .(24. Oktober 2013) : Liste für SDK 7.0 aktualisiert. Eigenschaften, die für iOS 7.0 (oder höher) gelten, werden unter dem
[iOS 7.0]
Tag aufgelistet .quelle
UIButton
es keineUI_APPEARANCE_SELECTOR
Eigenschaften hat, aber demUIAppearance
Protokoll entspricht. Ist das ein Versehen von Apple?xcode-select --print-path
diese Option , um den Pfad zum Entwicklerverzeichnis abzurufen.