iPhone - Установка фона на UITableViewController

У Ruby уже есть необходимое регулярное выражение в стандартной библиотеке. Оформить заказ resolv .

require "resolv"

"192.168.1.1"   =~ Resolv::IPv4::Regex ? true : false #=> true
"192.168.1.500" =~ Resolv::IPv4::Regex ? true : false #=> false

"ff02::1"    =~ Resolv::IPv6::Regex ? true : false #=> true
"ff02::1::1" =~ Resolv::IPv6::Regex ? true : false #=> false

Если вам нравится короткий путь ...

require "resolv"

!!("192.168.1.1"   =~ Resolv::IPv4::Regex) #=> true
!!("192.168.1.500" =~ Resolv::IPv4::Regex) #=> false

!!("ff02::1"    =~ Resolv::IPv6::Regex) #=> true
!!("ff02::1::1" =~ Resolv::IPv6::Regex) #=> false

Веселитесь!

Обновление (2018-10-08):

Из комментариев ниже я люблю очень короткую версию:

!!(ip_string =~ Regexp.union([Resolv::IPv4::Regex, Resolv::IPv6::Regex]))

Очень элегантно с рельсами (также ответ снизу):

validates :ip,
          :format => {
            :with => Regexp.union(Resolv::IPv4::Regex, Resolv::IPv6::Regex)
          }

50
задан Linger 4 September 2012 в 06:25
поделиться

2 ответа

(Это в основном то же самое, что и решение Ханса Эспена выше, но для краткости используются удобные методы)

Поместите это в свой - [UITableViewControllerSubclass viewDidLoad] method:

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BackgroundPattern.png"]];

Нет смысла избегать пары автозапусков в методе viewDidLoad, поскольку он вызывается редко (когда представление действительно загружается) и, следовательно, будет иметь незначительное влияние на производительность.

Примечание. На iPhone всегда следует использовать изображения PNG, а не JPEG или любой другой формат.

68
ответ дан 7 November 2019 в 10:33
поделиться

Вообще-то, у меня все заработало! :)

NSString *backgroundPath = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"jpg"];
UIImage *backgroundImage = [UIImage imageWithContentsOfFile:backgroundPath];
UIColor *backgroundColor = [[UIColor alloc] initWithPatternImage:backgroundImage];
self.tableView.backgroundColor = backgroundColor; 
[backgroundColor release];
6
ответ дан 7 November 2019 в 10:33
поделиться
Другие вопросы по тегам:

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