Если сегменты равны, почему бы просто не разделить ширину элемента управления на номер выбранного сегмента (+1, потому что нумерация начинается с 0)?РЕДАКТИРОВАТЬ: Как это
-(void)showPopover:(id)sender {
if ((UISegmentedControl*)sender.selectedSegmentIndex == 0)
[self.popover presentPopoverFromRect:CGRectMake(self.segmentedControl.frame.size.width/6, self.segmentedControl.frame.origin.y, aWidth, aHeight)]
}
Это больше 6 (я предполагаю, что реализация 3 сегмента), потому что вы должны получить центр сегмента, а 3 будет поставить его на линии.И если вы выполните здесь простую математику (давайте предположим, что весь элемент управления имеет ширину 60 пикселей), то получится 60/3. Поскольку каждый сегмент имеет ширину 20 пикселей, ширина 60 на шесть дает правильный ответ 10.