Как я могу преобразовать шестнадцатеричную строку RGB в UIColor в target-c?

Вы можете использовать пример кода. Вы хотите узнать подробности о ClickableSpan. Пожалуйста, проверьте это documentaion

  SpannableString myString = new SpannableString("This is example");

            ClickableSpan clickableSpan = new ClickableSpan() {
                    @Override
                    public void onClick(View textView) {
                        ToastUtil.show(getContext(),"Clicked Smile ");
                    }
                };

        //For Click
         myString.setSpan(clickableSpan,startIndex,lastIndex,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

        //For UnderLine
         myString.setSpan(new UnderlineSpan(),startIndex,lastIndex,0);

        //For Bold
        myString.setSpan(new StyleSpan(Typeface.BOLD),startIndex,lastIndex,0);

        //Finally you can set to textView. 

        TextView textView = (TextView) findViewById(R.id.txtSpan);
        textView.setText(myString);
        textView.setMovementMethod(LinkMovementMethod.getInstance());

13
задан dipu 9 June 2010 в 21:47
поделиться

1 ответ

Вы близки, но colorWithRed: green: blue: alpha: ожидает значений от 0,0 до 1,0, поэтому вам нужно сдвинуть биты вправо и разделить на 255.0f :

CGFloat red   = ((baseColor1 & 0xFF0000) >> 16) / 255.0f;
CGFloat green = ((baseColor1 & 0x00FF00) >>  8) / 255.0f;
CGFloat blue  =  (baseColor1 & 0x0000FF) / 255.0f;

РЕДАКТИРОВАТЬ - Также scanHexInt NSScanner пропустит 0x перед шестнадцатеричной строкой, но я не думаю, что он пропустит символ # перед шестнадцатеричной строкой. Вы можете добавить эту строку, чтобы справиться с этим:

[scanner2 setCharactersToBeSkipped:[NSCharacterSet symbolCharacterSet]]; 
25
ответ дан 1 December 2019 в 19:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: