Как я могу выбрать цвет фона кнопки на iPhone?

Прежде чем продолжить: Эта операция еще одна groupByKey.


Не совсем сжатое или эффективное решение, но вы можете использовать UserDefinedAggregateFunction, введенный в Spark 1.5.0:

object GroupConcat extends UserDefinedAggregateFunction {
    def inputSchema = new StructType().add("x", StringType)
    def bufferSchema = new StructType().add("buff", ArrayType(StringType))
    def dataType = StringType
    def deterministic = true 

    def initialize(buffer: MutableAggregationBuffer) = {
      buffer.update(0, ArrayBuffer.empty[String])
    }

    def update(buffer: MutableAggregationBuffer, input: Row) = {
      if (!input.isNullAt(0)) 
        buffer.update(0, buffer.getSeq[String](0) :+ input.getString(0))
    }

    def merge(buffer1: MutableAggregationBuffer, buffer2: Row) = {
      buffer1.update(0, buffer1.getSeq[String](0) ++ buffer2.getSeq[String](0))
    }

    def evaluate(buffer: Row) = UTF8String.fromString(
      buffer.getSeq[String](0).mkString(","))
}

Пример использования:

val df = sc.parallelize(Seq(
  ("username1", "friend1"),
  ("username1", "friend2"),
  ("username2", "friend1"),
  ("username2", "friend3")
)).toDF("username", "friend")

df.groupBy($"username").agg(GroupConcat($"friend")).show

## +---------+---------------+
## | username|        friends|
## +---------+---------------+
## |username1|friend1,friend2|
## |username2|friend1,friend3|
## +---------+---------------+

Вы также можете создать оболочку Python, как показано в Spark: как сопоставить Python с Scala или Java User Defined Functions?

На практике может быть быстрее извлечь RDD, groupByKey, mkString и перестроить DataFrame.

Вы можете получить аналогичный эффект, объединив collect_list (Spark> = 1.6.0) с concat_ws:

import org.apache.spark.sql.functions.{collect_list, udf, lit}

df.groupBy($"username")
  .agg(concat_ws(",", collect_list($"friend")).alias("friends"))

37
задан GEOCHET 16 December 2008 в 21:21
поделиться

11 ответов

Я могу быть, неправильно понял Ваш вопрос, но делает ниже не, работают на Вас?

0
ответ дан Laurel 10 October 2019 в 08:38
поделиться

Я нашел, что должен был использовать поддающееся растягиванию изображение для выполнения этого. Пример Apple UICatalog имеет одну или несколько цветных кнопок, которые оттянуты этим способом. Вы могли использовать их шаблонное изображение и повторно окрасить его для удовлетворения потребностям кнопки.

я не уверен в выполнении этого в Интерфейсном Разработчике, но я смог создать кнопку и использовать изображение для его содержания с помощью следующего кода:

downloadButton = [[UIButton alloc] initWithFrame:CGRectMake(36, 212, 247, 37)];

downloadButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
downloadButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

[downloadButton setTitle:NSLocalizedStringFromTable(@"Download", @"Localized", nil) forState:UIControlStateNormal]; 
[downloadButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[downloadButton setFont:[UIFont boldSystemFontOfSize:14.0]];

UIImage *newImage = [[UIImage imageNamed:@"greenButton.png"] stretchableImageWithLeftCapWidth:12.0f topCapHeight:0.0f];
[downloadButton setBackgroundImage:newImage forState:UIControlStateNormal];

[downloadButton addTarget:self action:@selector(downloadNewItem) forControlEvents:UIControlEventTouchDown];

downloadButton.backgroundColor = [UIColor clearColor];
[downloadDisplayView addSubview:downloadButton];
16
ответ дан Brad Larson 10 October 2019 в 08:38
поделиться

keremk был правильным, когда он сказал для изменения цвета фона 'представления', когда Вы нажали на кнопку и вошли в инспектора. Это изменяет небольшие углы в любой цвет, который Вы выбрали.

0
ответ дан Domness 10 October 2019 в 08:38
поделиться

Установите свой тип кнопки на "пользовательский" в палитре атрибутов кнопки. Это даст Вам квадратную кнопку с любым цветом, который Вы выбрали для фона.

, Если Вы хотите кнопку, которая больше походит на традиционную кнопку, но имеет различный цвет Ваша попытка должен войти в некоторое программное обеспечение редактирования изображение и создать его (я использую фотошоп для пользовательских кнопок).

5
ответ дан acreek 10 October 2019 в 08:38
поделиться

Выбирание цвета фона представления для округленной-rect кнопки не изменит цвет фона кнопки. Попытайтесь делать кнопку пользовательской кнопкой (первое выпадающее в инспекторе) и затем выбрать цвет фона. Вы получите желаемый эффект:)

15
ответ дан lostInTransit 10 October 2019 в 08:38
поделиться

Эта ссылка предлагает элегантное решение вашей проблемы ... http://www.cimgf.com/2010/ 01/28 / fun-with-uibuttons-and-core-animation-sizes /

5
ответ дан 17 November 2019 в 21:37
поделиться

Я решил эту проблему, создав собственную кнопку в фейерверке. Я нарисовал прямоугольник со скругленными углами примерно того размера, который хотел, с цветом заливки и границей, которые я хотел. Обрежьте холст и сохраните как PNG. В XCode добавьте файл в папку «Ресурсы». Вы можете использовать кнопку Custom в Интерфейсном Разработчике и указать изображение в качестве этого PNG. Он изменит размер по мере необходимости, поместит текст сверху и т. Д. Кривая углов может исказиться, если вам придется значительно изменить размер оригинала.

1
ответ дан 27 November 2019 в 04:26
поделиться

Я прочитал ваш вопрос к , требующему (как и я) программный способ установки цвета кнопки. Это вопиющее упущение в UIKit, и я не смог заставить работать недокументированный UIGlassButton.

Я решил это с помощью одного сегмента UISegmentedControl , который позволяет вам установите tintColor :

UISegmentedControl * btn = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:name]];
btn.momentary = YES;
btn.segmentedControlStyle = UISegmentedControlStyleBar;
btn.tintColor = color;
[btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

Обратите внимание, что свойства мгновенное и segmentedControlStyle имеют значение, и что изображение можно использовать вместо NSString * name.

Растягиваемое изображение с заглушками отлично работает, если вы можете использовать ограниченный набор стандартных изображений, но это не соответствует требованиям! Например,

buttonImage   = [[UIImage imageNamed:@"button.png"] stretchableImageWithLeftCapWidth:26 topCapHeight:16];
20
ответ дан 27 November 2019 в 04:26
поделиться

Чтобы сохранить округлую форму кнопки, как насчет использования

view.layer.cornerRadius = 8;

описанной здесь

Как создать UILabel с круглыми углами на iPhone?

4
ответ дан 27 November 2019 в 04:26
поделиться

http://github.com/dermdaly/ButtonMaker

Вы можете сгенерировать изображение UIbutton с помощью этого приложения... и установить его в качестве фонового изображения вашей кнопки

9
ответ дан 27 November 2019 в 04:26
поделиться

Решение Тима Джеймса (односегментный сегментированный элемент управления) работало для меня, когда мне требовалось простое «Сохранить Кнопка с приличным синим градиентным фоном. Я просто создал 2-сегментный элемент управления в наконечнике, настроил первый сегмент так, как я хотел, а затем программно удалил второй сегмент в -viewWillAppear, используя [mySegmentedControl removeSegmentAtIndex: 1 animated: NO]. Для моих целей «Мгновенный» должен был быть активным (отмечен галочкой) для первого сегмента сегментированного элемента управления в пере, а «Выбранный» не был активен ни для одного из сегментов. «Значение изменено» - это действие сегментированного элемента управления для подключения.

1
ответ дан 27 November 2019 в 04:26
поделиться
Другие вопросы по тегам:

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