mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-28 20:25:33 +08:00
Add tintColor for buttons.
Summary: Closes #3374 Closes https://github.com/facebook/react-native/pull/4590 Reviewed By: javache Differential Revision: D2729616 Pulled By: mkonicek fb-gh-sync-id: 4a3b6de10a09cad73dbd9d5d552adc3f6ba054e0
This commit is contained in:
committed by
facebook-github-bot-7
parent
f8be783798
commit
86bb656e6f
@@ -27,7 +27,7 @@ var BUTTONS = [
|
|||||||
'Option 0',
|
'Option 0',
|
||||||
'Option 1',
|
'Option 1',
|
||||||
'Option 2',
|
'Option 2',
|
||||||
'Destruct',
|
'Delete',
|
||||||
'Cancel',
|
'Cancel',
|
||||||
];
|
];
|
||||||
var DESTRUCTIVE_INDEX = 3;
|
var DESTRUCTIVE_INDEX = 3;
|
||||||
@@ -65,6 +65,40 @@ var ActionSheetExample = React.createClass({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var ActionSheetTintExample = React.createClass({
|
||||||
|
getInitialState() {
|
||||||
|
return {
|
||||||
|
clicked: 'none',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<Text onPress={this.showActionSheet} style={style.button}>
|
||||||
|
Click to show the ActionSheet
|
||||||
|
</Text>
|
||||||
|
<Text>
|
||||||
|
Clicked button: {this.state.clicked}
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
showActionSheet() {
|
||||||
|
ActionSheetIOS.showActionSheetWithOptions({
|
||||||
|
options: BUTTONS,
|
||||||
|
cancelButtonIndex: CANCEL_INDEX,
|
||||||
|
destructiveButtonIndex: DESTRUCTIVE_INDEX,
|
||||||
|
tintColor: 'green',
|
||||||
|
},
|
||||||
|
(buttonIndex) => {
|
||||||
|
this.setState({ clicked: BUTTONS[buttonIndex] });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
var ShareActionSheetExample = React.createClass({
|
var ShareActionSheetExample = React.createClass({
|
||||||
getInitialState() {
|
getInitialState() {
|
||||||
return {
|
return {
|
||||||
@@ -123,6 +157,10 @@ exports.examples = [
|
|||||||
title: 'Show Action Sheet',
|
title: 'Show Action Sheet',
|
||||||
render(): ReactElement { return <ActionSheetExample />; }
|
render(): ReactElement { return <ActionSheetExample />; }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: 'Show Action Sheet with tinted buttons',
|
||||||
|
render(): ReactElement { return <ActionSheetTintExample />; }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: 'Show Share Action Sheet',
|
title: 'Show Share Action Sheet',
|
||||||
render(): ReactElement { return <ShareActionSheetExample />; }
|
render(): ReactElement { return <ShareActionSheetExample />; }
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
var RCTActionSheetManager = require('NativeModules').ActionSheetManager;
|
var RCTActionSheetManager = require('NativeModules').ActionSheetManager;
|
||||||
|
|
||||||
var invariant = require('invariant');
|
var invariant = require('invariant');
|
||||||
|
var processColor = require('processColor');
|
||||||
|
|
||||||
var ActionSheetIOS = {
|
var ActionSheetIOS = {
|
||||||
showActionSheetWithOptions(options: Object, callback: Function) {
|
showActionSheetWithOptions(options: Object, callback: Function) {
|
||||||
@@ -26,7 +27,7 @@ var ActionSheetIOS = {
|
|||||||
'Must provide a valid callback'
|
'Must provide a valid callback'
|
||||||
);
|
);
|
||||||
RCTActionSheetManager.showActionSheetWithOptions(
|
RCTActionSheetManager.showActionSheetWithOptions(
|
||||||
options,
|
{...options, tintColor: processColor(options.tintColor)},
|
||||||
callback
|
callback
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -49,7 +50,7 @@ var ActionSheetIOS = {
|
|||||||
'Must provide a valid successCallback'
|
'Must provide a valid successCallback'
|
||||||
);
|
);
|
||||||
RCTActionSheetManager.showShareActionSheetWithOptions(
|
RCTActionSheetManager.showShareActionSheetWithOptions(
|
||||||
options,
|
{...options, tintColor: processColor(options.tintColor)},
|
||||||
failureCallback,
|
failureCallback,
|
||||||
successCallback
|
successCallback
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
#import "RCTUIManager.h"
|
#import "RCTUIManager.h"
|
||||||
|
|
||||||
@interface RCTActionSheetManager () <UIActionSheetDelegate>
|
@interface RCTActionSheetManager () <UIActionSheetDelegate>
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation RCTActionSheetManager
|
@implementation RCTActionSheetManager
|
||||||
@@ -139,6 +138,8 @@ RCT_EXPORT_METHOD(showActionSheetWithOptions:(NSDictionary *)options
|
|||||||
alertController.popoverPresentationController.permittedArrowDirections = 0;
|
alertController.popoverPresentationController.permittedArrowDirections = 0;
|
||||||
}
|
}
|
||||||
[controller presentViewController:alertController animated:YES completion:nil];
|
[controller presentViewController:alertController animated:YES completion:nil];
|
||||||
|
|
||||||
|
alertController.view.tintColor = [RCTConvert UIColor:options[@"tintColor"]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,6 +211,8 @@ RCT_EXPORT_METHOD(showShareActionSheetWithOptions:(NSDictionary *)options
|
|||||||
}
|
}
|
||||||
|
|
||||||
[controller presentViewController:shareController animated:YES completion:nil];
|
[controller presentViewController:shareController animated:YES completion:nil];
|
||||||
|
|
||||||
|
shareController.view.tintColor = [RCTConvert UIColor:options[@"tintColor"]];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark UIActionSheetDelegate Methods
|
#pragma mark UIActionSheetDelegate Methods
|
||||||
|
|||||||
Reference in New Issue
Block a user