Высота по умолчанию для заголовка раздела в UITableView

Я действительно смущен ответами, которые были даны - большинство из них просто прямо неправильный. Конечно, у Вас могут быть свойства объектов, которые имеют неопределенные, пустые, или ложные значения. Так просто сокращение свойства проверяют к typeof this[property] или, еще хуже, x.key даст Вам абсолютно вводящие в заблуждение результаты.

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

, Если то, что Вы ищете, - то, если объект имеет свойство на нем, которое повторяемо (когда Вы выполняете итерации по свойствам объекта, это появится), тогда выполнение: prop in object даст Вам Ваш желаемый эффект.

Начиная с использования hasOwnProperty, вероятно, что Вы хотите, и полагая, что можно хотеть метод нейтрализации, я представляю Вам следующее решение:

var obj = {
    a: undefined,
    b: null,
    c: false
};

// a, b, c all found
for ( var prop in obj ) {
    document.writeln( "Object1: " + prop );
}

function Class(){
    this.a = undefined;
    this.b = null;
    this.c = false;
}

Class.prototype = {
    a: undefined,
    b: true,
    c: true,
    d: true,
    e: true
};

var obj2 = new Class();

// a, b, c, d, e found
for ( var prop in obj2 ) {
    document.writeln( "Object2: " + prop );
}

function hasOwnProperty(obj, prop) {
    var proto = obj.__proto__ || obj.constructor.prototype;
    return (prop in obj) &&
        (!(prop in proto) || proto[prop] !== obj[prop]);
}

if ( Object.prototype.hasOwnProperty ) {
    var hasOwnProperty = function(obj, prop) {
        return obj.hasOwnProperty(prop);
    }
}

// a, b, c found in modern browsers
// b, c found in Safari 2.0.1 and older
for ( var prop in obj2 ) {
    if ( hasOwnProperty(obj2, prop) ) {
        document.writeln( "Object2 w/ hasOwn: " + prop );
    }
}

Вышеупомянутое является работой, перекрестным браузером, решением hasOwnProperty, с одним протестом: Это неспособно различать случаи, где идентичное свойство находится на прототипе и на экземпляре - это просто предполагает, что прибывает из прототипа. Вы могли сместить его, чтобы быть более снисходительными или строгими, основанными на Вашей ситуации, но по крайней мере это должно быть более полезно.

123
задан rein 29 July 2009 в 13:54
поделиться

2 ответа

После проверки значений по умолчанию в моем приложении похоже, что для сгруппированной таблицы высота по умолчанию составляет 22, а для несгруппированной таблицы высота по умолчанию равна 10.

Если вы проверяете значение свойства sectionHeaderHeight в представлении таблицы, которое должно вам сообщить.

48
ответ дан 24 November 2019 в 01:12
поделиться

Это должно сделать трюк

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return [tableView rowHeight];
}
-1
ответ дан 24 November 2019 в 01:12
поделиться
Другие вопросы по тегам:

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