2012-09-28 58 views
14

¿Hay alguna manera de hacerlo? No solo quiero establecer Class Identity, sino cambiar la clase diseñada (para que las propiedades del objeto cambien).XCode Interface Builder: clase de cambio del objeto ya colocado

La razón es que coloqué UIView y muchas subvistas. Ahora quiero cambiarlo a UITableViewCell. ¿Tal vez se puede hacer 'pirateando' el archivo xib?

Respuesta

13

Desafortunadamente, enloquecedor, no hay forma de hacer esto en InterfaceBuilder (que he encontrado). El cambio de la clase personalizada solo agrega una clase personalizada a UIView, en lugar de cambiar UIView a la clase que desea que sea (por ejemplo, UITableViewCell), que incluye todas las propiedades que puede tener la vista deseada. Puedes ver esto en el archivo XML del guión gráfico.

que desea, por ejemplo, esto:

<label text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" ... id="Flb-Qd-jpJ"> ... </label> 

y no esto:

<view ... id="Flb-Qd-jpJ" customClass="UILabel"> ... </view> 

pero Xcode sólo se le da la última; está actualizando el atributo customClass de la vista en lugar de actualizar todo el elemento.

Si quieres la anterior, igual puedes obtenerla, pero tendrás que editar el archivo xml tú mismo, manteniendo el ID del elemento igual. Aquí hay un gran artículo de blog explicando esto con más detalle: http://codenetwaves.blogspot.com.br/2012/09/change-view-to-scrollview-in-xcode.html

+0

Además, debe tenerse en cuenta que este es un duplicado de la pregunta hecha aquí: http: // stackoverflow .com/questions/10724488/update-uiview-class-in-interface-builder – lillialexis

+0

Creo que es mucho más seguro utilizar este enfoque: http://stackoverflow.com/a/36573454/1366265 – user1366265

-1

En el constructor de interfaces, abrirá la tercera pestaña y encontrará la clase personalizada. Allí puede cambiar la UIView a una UITableViewCell

+1

Este campo define la clase personalizada en el código. No afecta las propiedades del objeto en Interface Builder. – brigadir

+0

luego puede aumentar el tamaño del contenido de la ventana, crear la tablaCélula y arrastrar todos los objetos dentro de la vista dentro de tableviewcell –

Cuestiones relacionadas