4

所以在过去的两周里,我一直在研究我的 GitHub 存储库https://github.com/satheeshwaran/iOS-8-Features-Demo,在那里我尝试演示 iOS 8 中引入的 Share 扩展。我了解了我可以添加SLComposeSheetConfigurationItem到 aSLComposeServiceViewController但我无法弄清楚如何更改 a 的色调或文本颜色的方式SLComposeSheetConfigurationItem

到目前为止我所做的,

在此处输入图像描述

如上图所示,我想将描述和我的第一个分享设置为我选择的某种颜色,也可能是我想自定义字体之类的。我对SocialFramework进行了一些研究,但无法从中得到任何东西。

我在我的 iPad 上看到了 Evernote 的分享扩展,它看起来像这样, 在此处输入图像描述

如果您在底部看到一个图标,并且文本颜色等与导航栏的主题相匹配。

引用 WWDC 2014 关于扩展编程的演示文稿,

SLComposeServiceViewController对于标准 UI
UI/NSViewController对于自定义 UI 来回答我的问题,

  1. 我可以自定义SLComposeServiceViewControllerSLComposeSheetConfigurationItem看起来像这样吗?
  2. 第二个问题是关于报价的,可以SLComposeServiceViewController自定义默认值吗?或者我应该使用一个UIViewController子类来做我自己的 UI。
  3. Evernote 将如何完成自定义UIViewController子类以复制行为或使用SLComposeServiceViewController(我不确定是否要问这个,但我想要答案)
4

4 回答 4

6

用于自定义导航栏。正常的非点符号方法对我来说很好用。

[[[self navigationController] navigationBar] setTintColor:[UIColor whiteColor]];
[[[self navigationController] navigationBar] setBackgroundColor:[UIColor redColor]];
[[self navigationItem] setTitleView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"elephant.png"]]];

对于SLComposeSheetConfigurationItem给定图标的自定义子类。

用于配置的唯一公共方法SLComposeSheetConfigurationItem @property (nonatomic, copy) NSString *title; // The displayed name of the option. @property (nonatomic, copy) NSString *value; // The current value/setting of the option. @property (nonatomic, assign) BOOL valuePending; // Default is NO. set to YES to show a progress indicator. Can be used with a value too.

于 2014-10-21T18:17:23.580 回答
4

我的代码,我用来获得类似于 Evernote 的结果:

func getTopWithColor(color: UIColor, size: CGSize) -> UIImage {
    let rect = CGRectMake(0, 0, size.width, size.height)
    UIGraphicsBeginImageContextWithOptions(size, false, 0)
    color.setFill()
    UIRectFill(rect)
    if let img = UIImage(named: "icon.png") {
        img.drawInRect(CGRectMake((size.width-size.height)/2, 0, size.height, size.height))
    }
    let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image
}

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationController?.navigationBar.tintColor = UIColor.blackColor()
    let navSize = self.navigationController?.navigationBar.frame.size
    self.navigationController?.navigationBar.setBackgroundImage(getTopWithColor(UIColor.whiteColor(), size: navSize!), forBarMetrics: .Default)
}

带有自定义导航栏的 SLComposeServiceViewController

于 2016-03-05T14:36:01.913 回答
1

实际上 SLComposeServiceViewController 的导航控制器是一个 SLSheetNavigationController,设置标题视图到它的导航栏似乎没有任何效果,还有标题文本属性。

于 2014-10-27T18:16:15.237 回答
0

我认为这里的正确答案:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    if let table = textView.superview?.superview?.superview as? UITableView {
        let length = table.numberOfRows(inSection: 0)
        table.scrollToRow(at: IndexPath(row: length - 1, section: 0), at: .bottom, animated: true)

        if let row = table.cellForRow(at: IndexPath(item: 0, section: 0)) as? UITableViewCell {
            row.textLabel?.textColor = UIColor.green
        }
    }
}

SLComposeSheetConfigurationItem 刚刚呈现在 UITableViewCell 中,您可以对其进行修改。

于 2018-10-29T14:44:39.450 回答