MonoTouch.对话框:UISearchBar颜色



在3月31日发布的MonoTouch.Dialog中,我们现在无法再设置UISearchBar的颜色,因为有一个带有硬编码颜色的新容器对象。

有没有更简单的方法来更改UISearchBar的颜色?

作为解决方案,我使用了这个(知道UISearchBar是新类SearchBarBackgroundView:中最后添加的项

        SearchBarBackgroundView sb = TableView.TableHeaderView as SearchBarBackgroundView;
        if (sb != null)
        {
            try
            {
                if (sb.Subviews.Count () > 1)
                {
                    UISearchBar bar = sb.Subviews [sb.Subviews.Count () - 1] as UISearchBar;
                    if (bar != null)
                    {
                        bar.BackgroundColor = Settings.AppTintColor;
                        bar.TintColor = Settings.AppTintColor;
                    }
                }
            }
            catch (Exception e)
            {
                ExceptionPublisher.Pub (e, ""); 
            }
        }

这听起来像是一个糟糕的特性回归。IMO——答案不是解决办法,最好的办法是:使用早期版本,但要找出发生这种情况的时间/原因,并确保MonoTouch的下一个版本不会将这种突破性的更改强加给其他开发人员。

由于MonoTouch.Dialog程序集是开源的,因此处理这些问题的最佳方法是跟踪修订发生的位置。您可以从github中查看历史记录,然后对导致问题的条目进行评论(例如,这一条看起来像一个候选者——可能只是因为它在一个补丁中做了太多事情)。

因此,如果在此之前的修订有效,那么您可以添加关于该问题的注释(页面底部)。关注存储库的每个人都将收到一封电子邮件。

更新:引入中断更改的修补程序已恢复。

最新更新