-1

I am trying to append two NSAttributedString's with the following values and I get the first NSAttributedString but not the second. The label is inside a UITableView. I have no idea what is causing this problem.

NSMutableAttributedString ms = new NSMutableAttributedString();
NSAttributedString attributedString = new NSAttributedString("Add New Seller ", new UIStringAttributes(){
                    Font = UIFont.FromName("Quicksand-Regular", 17)});
NSAttributedString attributedString1 = new NSAttributedString("+", new UIStringAttributes(){
                    Font = UIFont.FromName("Quicksand-Regular", 17),
                    ForegroundColor = new UIColor(33f, 201f, 130f, 1f)});
ms.Append(attributedString);
ms.Append(attributedString1);
cell.seller.AttributedText = ms;
273K
  • 29,503
  • 10
  • 41
  • 64
cppisnice
  • 13
  • 2
  • 1
    Note that `UIColor()` should expect values between 0 and 1, so `33/255f`? and so one? Could you print `ms` before/after appending `attributedString1` to check that it's really set? – Larme Mar 24 '18 at 20:26

1 Answers1

0

Your second NSAttributedString is there appended in the final NSMutableAttributedString but you might not see it because it's white. Your issue as @Larme indicated in the comments is with the way you are creating your UIColor.

UIColor accepts nfloat values between 0 and 1. When you say new UIColor(33f, 201f, 130f, 1f) the resulting Color will be White because it will treat any value over 1.0 as 1.0, hence

new UIColor(33f, 201f, 130f, 1f) has the same result as new UIColor(1f, 1f, 1f, 1f).

To fix your code you just need to change the UIColor initialization as

new UIColor(33f/255, 201f/255, 130f/255, 1f)

As you see dividing your 3 values of the color (RGB) by 255. The last value represents the alpha.

Hope this helps.-

pinedax
  • 9,246
  • 2
  • 23
  • 30