Этот вопрос уже решен, но, возможно, мое решение может помочь кому-то еще.У меня была похожая проблема, за исключением того, что я пытался удалить верхнюю границу 1px.
Если вы подкласс UISearchBar
, вы можете переопределить кадр следующим образом.
- (void)setFrame:(CGRect)frame {
frame.origin.y = -1.0f;
[super setFrame:frame];
self.clipsToBounds = YES;
self.searchFieldBackgroundPositionAdjustment = UIOffsetMake(0, 1.0f);
}
Или, если вы хотите исправить нижний пиксель, вы можете сделать что-то подобное (не проверено).
- (void)setFrame:(CGRect)frame {
frame.origin.y = 1.0f;
[super setFrame:frame];
self.clipsToBounds = YES;
self.searchFieldBackgroundPositionAdjustment = UIOffsetMake(0, -1.0f);
}
Только для простоты примера clipsToBounds
и searchFieldBackgroundPositionAdjustment
в setFrame
.
Также searchFieldBackgroundPositionAdjustment
необходим только для повторного центрирования поиска
ОБНОВЛЕНИЕ
Оказывается, что tableView
сместит 1px с обновления origin.y
, пока активна панель поиска.Это немного странно.Я понял, что решение так же просто, как установка, self.clipsToBounds = YES;