2017-10-12 85 views
7

我有這個UISwipeActionsConfiguration適用於iOS 11這個代碼看起來像更改顏色在UISwipeActionsConfiguration iOS的11文本和圖像 - Xamarin /斯威夫特

enter image description here

public override UISwipeActionsConfiguration GetLeadingSwipeActionsConfiguration(UITableView tableView, NSIndexPath indexPath) 
     { 
      var definitionAction = ContextualDefinitionAction(indexPath.Row); 
      var flagAction = ContextualFlagAction(indexPath.Row); 
      var leadingSwipe = UISwipeActionsConfiguration.FromActions(new UIContextualAction[] { flagAction, definitionAction }); 

      leadingSwipe.PerformsFirstActionWithFullSwipe = false; 
      return leadingSwipe; 
     } 


    public UIContextualAction ContextualDefinitionAction(int row) 
    { 
     string word = words[row]; 

     var action = UIContextualAction.FromContextualActionStyle(UIContextualActionStyle.Normal, 
                  "Definition", 
                  (ReadLaterAction, view, success) => { 
                   var def = new UIReferenceLibraryViewController(word); 

                   var alertController = UIAlertController.Create("No Dictionary Installed", "To install a Dictionary, Select Definition again, click `Manage` on the next screen and select a dictionary to download", UIAlertControllerStyle.Alert); 
                   alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); 

                   if (UIReferenceLibraryViewController.DictionaryHasDefinitionForTerm(word) || hasViewedAlert == true){ 
                    PresentViewController(def, true, null); 
                    success(true); 
                   }else{ 
                    PresentViewController(alertController, true, null); 
                    hasViewedAlert = true; 
                    success(false); 
                   } 
                  }); 
     action.BackgroundColor = UIColor.Orange; 
     return action; 
    } 

    public UIContextualAction ContextualFlagAction(int row) 
    { 
     var action = UIContextualAction.FromContextualActionStyle(UIContextualActionStyle.Normal, 
                    "Flag", 
                    (FlagAction, view, success) => { 
                     var alertController = UIAlertController.Create($"Report {words[row]}?", "", UIAlertControllerStyle.Alert); 
                     alertController.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null)); 
                     alertController.AddAction(UIAlertAction.Create("Yes", UIAlertActionStyle.Destructive, null)); 
                     PresentViewController(alertController, true, null); 

                     success(true); 
                    }); 

     action.Image = UIImage.FromFile("feedback.png"); 
     action.BackgroundColor = UIColor.Blue; 

     return action; 
    } 

存在的方法來修改的顏色文字和圖像? 因爲我沒有任何想法,所以我嘗試在用戶滑動時在單元格上創建ImageView,但圖像位於滑動視圖的背面。感謝您的幫助,我希望您能幫助我。

+0

我認爲你可以使用圖像而不是文本,因爲它很容易改變圖像的顏色與工具(Photoshop等)。 –

回答

0

實際上修改UISwipeActionsConfiguration以更改文本的顏色,並且使用API​​的圖像是不可能的。