更改iOS中对话框按钮的颜色?

时间:2020-07-16 12:48:44

标签: nativescript

是否可以更改iOS中对话框按钮的文本颜色?

我指的是警报/确认对话框等底部的“确定/取消”按钮。

如果使用本机代码,也可以。

1 个答案:

答案 0 :(得分:0)

如果要在IOS上实现此功能,则需要使用本机代码,这是实现方式:

if (isIOS) {
            var alertController = UIAlertController.alertControllerWithTitleMessagePreferredStyle("title", "message", UIAlertControllerStyle.ActionSheet);
            
            // Here are some premade styling. The destructive by default is red on IOS. You can select default for them all or use existing.
            var editAction = UIAlertAction.actionWithTitleStyleHandler("Edit", UIAlertActionStyle.Default, (arg: UIAlertAction) => {
                //code implementation here
            });
            var deleteAction = UIAlertAction.actionWithTitleStyleHandler("Delete", UIAlertActionStyle.Destructive, (arg: UIAlertAction) => {
                //code implementation here
            });
            var cancelAction = UIAlertAction.actionWithTitleStyleHandler("Cancel", UIAlertActionStyle.Cancel, (arg: UIAlertAction) => {
                //code implementation here
            });
        
            alertController.addAction(editAction);
            alertController.addAction(deleteAction);
            alertController.addAction(cancelAction);

            // This is how you can force change the color of the title text on the actions (buttons).
            alertController.view.tintColor = new Color("#FF0000").ios; // Color is a class in Nativescript, if we you want the Native IOS value, this is how you do it.

            var currentPage = topmost().currentPage;
            var viewController: UIViewController = currentPage.ios;
            viewController.presentModalViewControllerAnimated(alertController, true);
        }

确保您导入了所需的内容:

import { isIOS, Color } from 'tns-core-modules/ui/page/page';
import { topmost } from 'tns-core-modules/ui/frame';

您还可以通过更改默认的alertController.view设置来进行其他样式自定义。因此,只需尝试最适合您的用例即可。