Мое дело было другим, включая uisearchbar и uitableview на self.view. Я хотел убрать клавиатуру uisearchbar, прикоснувшись к представлению.
var tapGestureRecognizer:UITapGestureRecognizer?
override func viewWillAppear(animated: Bool) {
tapGestureRecognizer = UITapGestureRecognizer(target: self, action:Selector("handleTap:"))
}
В методах делегатов UISearchBar:
func searchBarShouldBeginEditing(searchBar: UISearchBar) -> Bool {
view.addGestureRecognizer(tapGestureRecognizer!)
return true
}
func searchBarShouldEndEditing(searchBar: UISearchBar) -> Bool {
view.removeGestureRecognizer(tapGestureRecognizer!)
return true
}
Когда пользователь затрагивает self.view:
func handleTap(recognizer: UITapGestureRecognizer) {
sampleSearchBar.endEditing(true)
sampleSearchBar.resignFirstResponder()
}
Вы можете получить нужные диапазоны, используя функцию range
.
FullRange = range(dataframe123, na.rm=TRUE)
FullRange
[1] 3.94000 29.29333
BoxRanges = lapply(dataframe123, range, na.rm=TRUE)
BoxRanges
$hmin1
[1] 3.94 26.97
$hmin2
[1] 17.76889 20.81778
$hmin3
[1] 9.293333 29.293333
Когда у вас есть это, вы можете получить нужные вам столбцы, сделав пустой график, а затем нанеся несколько прямоугольников.
plot(NULL, xlim=FullRange, ylim=c(0,3), yaxt="n", xlab="Value", ylab="")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in 1:3) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}