Make an iOSTable row non-selectable?

I have an iOSTable that I’m using to display settings information. Some rows need to be selectable but other rows just display data. I can’t find a way to make a row non-selectable, so that if the user taps on the row it isn’t highlighted. Does anybody know if there is a way to do this?

You’ll need to implement this:
https://developer.apple.com/reference/uikit/uitableviewdelegate/1614988-tableview
Not sure if I’ll be able to get to it soon though since I’m busy.

A simple workaround, is to unselect the row as soon as it was selected, but the row will be highlighted for half a second.

[code] declare sub selectRow lib “UIKit” selector “selectRowAtIndexPath:animated:scrollPosition:” (id as Ptr, row as Ptr, animated as boolean, scrollPosition as integer)

	selectRow(table.Handle, nil, false, 0)[/code]

Thanks for the workaround @JrmieLeroy , that helps. And @JasonKing if you do happen to find some time… :wink:

Reloading the table data works, too.

Better method:

		declare sub setselectionStyle lib UIKitLib selector "setSelectionStyle:" (obj_id as ptr, style as integer)
		
		setselectionStyle(cell.Handle, 0) //0 = no selection

The cell will not appear highlighted but you will still get the Table.Action event.
It is up to you to ignore those rows in the Action event.

1 Like

Indeed that is a better method. Is there a version of that declare to set the selection style for the whole table, instead of for each individual cell?

I don’t think there is.

It works well though! Thanks again @JrmieLeroy ! :slight_smile: