pub struct CPListImageRowItem { /* private fields */ }CPListImageRowItem only.Expand description
Implementations§
Source§impl CPListImageRowItem
impl CPListImageRowItem
Sourcepub unsafe fn initWithText_images(
this: Allocated<Self>,
text: &NSString,
images: &NSArray<UIImage>,
) -> Retained<Self>
👎Deprecated: Use initWithText:elements:allowsMultipleLines:Available on crate feature objc2-ui-kit only.
pub unsafe fn initWithText_images( this: Allocated<Self>, text: &NSString, images: &NSArray<UIImage>, ) -> Retained<Self>
objc2-ui-kit only.Initialize a list image row item with a text string and an array of
UIImagefor the grid of images.
When providing an image, your app should provide a
UIImagethat is display-ready. If necessary for the image, provide
light and dark styles by using an asset from your asset catalog, prepared with light and dark styles
or by using
UIImageAssetto combine two
UIImageinstances into a single image with
both styles.
UIImageAsset is used to combine multiple UIImages with different trait collections into a single UIImage.
Note: The expected image size is given by +[CPListImageRowItem maximumImageSize]. Images provided will be resized to this size if necessary.
To properly size your images, your app should size them to the display scale of the car screen. See -[CPInterfaceController carTraitCollection].
Sourcepub unsafe fn initWithText_images_imageTitles(
this: Allocated<Self>,
text: &NSString,
images: &NSArray<UIImage>,
image_titles: &NSArray<NSString>,
) -> Retained<Self>
👎Deprecated: Use initWithText:elements:allowsMultipleLines:Available on crate feature objc2-ui-kit only.
pub unsafe fn initWithText_images_imageTitles( this: Allocated<Self>, text: &NSString, images: &NSArray<UIImage>, image_titles: &NSArray<NSString>, ) -> Retained<Self>
objc2-ui-kit only.Initialize a list image row item with a text string, an array of
UIImagefor the grid of images, and an array of
NSStringtitles, one displayed below each image.
The number of titles in the
imageTitleslist should be equal to the number of images in the
imageslist.
When providing an image, your app should provide a
UIImagethat is display-ready. If necessary for the image, provide
light and dark styles by using an asset from your asset catalog, prepared with light and dark styles
or by using
UIImageAssetto combine two
UIImageinstances into a single image with
both styles.
UIImageAsset is used to combine multiple UIImages with different trait collections into a single UIImage.
Note: The expected image size is given by +[CPListImageRowItem maximumImageSize]. Images provided will be resized to this size if necessary.
To properly size your images, your app should size them to the display scale of the car screen. See -[CPInterfaceController carTraitCollection].
Sourcepub unsafe fn initWithText_elements_allowsMultipleLines(
this: Allocated<Self>,
text: Option<&NSString>,
elements: &NSArray<CPListImageRowItemRowElement>,
allows_multiple_lines: bool,
) -> Retained<Self>
Available on crate features CPListImageRowItemElement and CPListImageRowItemRowElement only.
pub unsafe fn initWithText_elements_allowsMultipleLines( this: Allocated<Self>, text: Option<&NSString>, elements: &NSArray<CPListImageRowItemRowElement>, allows_multiple_lines: bool, ) -> Retained<Self>
CPListImageRowItemElement and CPListImageRowItemRowElement only.Initialize a list image row item with a text string, an array of
CPListImageRowItemRowElementand a boolean to allow multiple lines in this row.
If a nil
textproperty is provided the cell will resize accordingly to hide the title.
Parameter text: The text visible at the top of the cell.
Parameter elements: The list of
CPListImageRowItemRowElementelements visible below the text.
Parameter allowsMultipleLines: Determines if the elements could be visible on more than a single line.
Sourcepub unsafe fn initWithText_cardElements_allowsMultipleLines(
this: Allocated<Self>,
text: Option<&NSString>,
elements: &NSArray<CPListImageRowItemCardElement>,
allows_multiple_lines: bool,
) -> Retained<Self>
Available on crate features CPListImageRowItemCardElement and CPListImageRowItemElement only.
pub unsafe fn initWithText_cardElements_allowsMultipleLines( this: Allocated<Self>, text: Option<&NSString>, elements: &NSArray<CPListImageRowItemCardElement>, allows_multiple_lines: bool, ) -> Retained<Self>
CPListImageRowItemCardElement and CPListImageRowItemElement only.Initialize a list image row item with a text string, an array of
CPListImageRowItemCardElementand a boolean to allow multiple lines in this row.
If a nil
textproperty is provided the cell will resize accordingly to hide the title.
Parameter text: The text visible at the top of the cell.
Parameter cardElements: The list of
CPListImageRowItemCardElementelements visible below the text.
Parameter allowsMultipleLines: Determines if the elements could be visible on more than a single line.
Sourcepub unsafe fn initWithText_condensedElements_allowsMultipleLines(
this: Allocated<Self>,
text: Option<&NSString>,
elements: &NSArray<CPListImageRowItemCondensedElement>,
allows_multiple_lines: bool,
) -> Retained<Self>
Available on crate features CPListImageRowItemCondensedElement and CPListImageRowItemElement only.
pub unsafe fn initWithText_condensedElements_allowsMultipleLines( this: Allocated<Self>, text: Option<&NSString>, elements: &NSArray<CPListImageRowItemCondensedElement>, allows_multiple_lines: bool, ) -> Retained<Self>
CPListImageRowItemCondensedElement and CPListImageRowItemElement only.Initialize a list image row item with a text string, an array of
CPListImageRowItemCondensedElementand a boolean to allow multiple lines in this row.
If a nil
textproperty is provided the cell will resize accordingly to hide the title.
Parameter text: The text visible at the top of the cell.
Parameter condensedElements: The list of
CPListImageRowItemCondensedElementelements visible below the text.
Parameter allowsMultipleLines: Determines if the elements could be visible on more than a single line.
Sourcepub unsafe fn initWithText_gridElements_allowsMultipleLines(
this: Allocated<Self>,
text: Option<&NSString>,
elements: &NSArray<CPListImageRowItemGridElement>,
allows_multiple_lines: bool,
) -> Retained<Self>
Available on crate features CPListImageRowItemElement and CPListImageRowItemGridElement only.
pub unsafe fn initWithText_gridElements_allowsMultipleLines( this: Allocated<Self>, text: Option<&NSString>, elements: &NSArray<CPListImageRowItemGridElement>, allows_multiple_lines: bool, ) -> Retained<Self>
CPListImageRowItemElement and CPListImageRowItemGridElement only.Initialize a list image row item with a text string, an array of
CPListImageRowItemGridElementand a boolean to allow multiple lines in this row.
If a nil
textproperty is provided the cell will resize accordingly to hide the title.
Parameter text: The text visible at the top of the cell.
Parameter gridElements: The list of
CPListImageRowItemGridElementelements visible below the text.
Parameter allowsMultipleLines: Determines if the elements could be visible on more than a single line.
Sourcepub unsafe fn initWithText_imageGridElements_allowsMultipleLines(
this: Allocated<Self>,
text: Option<&NSString>,
elements: &NSArray<CPListImageRowItemImageGridElement>,
allows_multiple_lines: bool,
) -> Retained<Self>
Available on crate features CPListImageRowItemElement and CPListImageRowItemImageGridElement only.
pub unsafe fn initWithText_imageGridElements_allowsMultipleLines( this: Allocated<Self>, text: Option<&NSString>, elements: &NSArray<CPListImageRowItemImageGridElement>, allows_multiple_lines: bool, ) -> Retained<Self>
CPListImageRowItemElement and CPListImageRowItemImageGridElement only.Initialize a list image row item with a text string, an array of
CPListImageRowItemImageGridElementand a boolean to allow multiple lines in this row.
If a nil
textproperty is provided the cell will resize accordingly to hide the title.
Parameter text: The text visible at the top of the cell.
Parameter imageGridElements: The list of
CPListImageRowItemImageGridElementelements visible below the text.
Parameter allowsMultipleLines: Determines if the elements could be visible on more than a single line.
Sourcepub unsafe fn text(&self) -> Option<Retained<NSString>>
pub unsafe fn text(&self) -> Option<Retained<NSString>>
The primary text shown in a cell displaying this list item.
Sourcepub unsafe fn userInfo(&self) -> Option<Retained<AnyObject>>
pub unsafe fn userInfo(&self) -> Option<Retained<AnyObject>>
Any custom user info related to this item.
Sourcepub unsafe fn setUserInfo(&self, user_info: Option<&AnyObject>)
pub unsafe fn setUserInfo(&self, user_info: Option<&AnyObject>)
Sourcepub unsafe fn handler(
&self,
) -> *mut DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>
Available on crate features CPListItemTypes and block2 and dispatch2 only.
pub unsafe fn handler( &self, ) -> *mut DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>
CPListItemTypes and block2 and dispatch2 only.An optional action block, fired when the user selects this item in a list template.
§Safety
- The returned block’s argument 1 must be a valid pointer.
- The returned block’s argument 2 must be a valid pointer.
Sourcepub unsafe fn setHandler(
&self,
handler: Option<&DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>>,
)
Available on crate features CPListItemTypes and block2 and dispatch2 only.
pub unsafe fn setHandler( &self, handler: Option<&DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>>, )
CPListItemTypes and block2 and dispatch2 only.Sourcepub unsafe fn isEnabled(&self) -> bool
pub unsafe fn isEnabled(&self) -> bool
A Boolean value indicating whether the list item is enabled.
Set the value of this property to
YESto enable the list item or
NOto disable it. The default value of this property is
YES.
Sourcepub unsafe fn setEnabled(&self, enabled: bool)
pub unsafe fn setEnabled(&self, enabled: bool)
Setter for isEnabled.
Sourcepub unsafe fn gridImages(&self) -> Retained<NSArray<UIImage>>
👎Deprecated: No longer supportedAvailable on crate feature objc2-ui-kit only.
pub unsafe fn gridImages(&self) -> Retained<NSArray<UIImage>>
objc2-ui-kit only.Read-only access to the grid images shown in a row in the cell.
Note: The maximum number of images shown is
CPMaximumNumberOfGridImages.If you supply more images, only the first
CPMaximumNumberOfGridImageswill be used.
Sourcepub unsafe fn updateImages(&self, grid_images: &NSArray<UIImage>)
👎Deprecated: No longer supportedAvailable on crate feature objc2-ui-kit only.
pub unsafe fn updateImages(&self, grid_images: &NSArray<UIImage>)
objc2-ui-kit only.Update the images displayed in this image row item. If this image row item is already displayed in a list template, this image row item will be automatically reloaded.
When providing an image, your app should provide a
UIImagethat is display-ready. If necessary for the image, provide
light and dark styles by using an asset from your asset catalog, prepared with light and dark styles
or by using
UIImageAssetto combine two
UIImageinstances into a single image with
both styles.
UIImageAsset is used to combine multiple UIImages with different trait collections into a single UIImage.
See: To update/reload the title of the image row item, assign to
the
textproperty of the image row item.
See: To update/reload the title labels displayed below each image, assign to
the
imageTitlesproperty of the image row item.
Sourcepub unsafe fn imageTitles(&self) -> Retained<NSArray<NSString>>
👎Deprecated: No longer supported
pub unsafe fn imageTitles(&self) -> Retained<NSArray<NSString>>
The titles displayed for each image in this image row item.
See: To update/reload the title of the image row item, assign to
the
textproperty of the image row item.
Sourcepub unsafe fn elements(&self) -> Retained<NSArray<CPListImageRowItemElement>>
Available on crate feature CPListImageRowItemElement only.
pub unsafe fn elements(&self) -> Retained<NSArray<CPListImageRowItemElement>>
CPListImageRowItemElement only.The array of elements used to draw visible elements.
Sourcepub unsafe fn setElements(&self, elements: &NSArray<CPListImageRowItemElement>)
Available on crate feature CPListImageRowItemElement only.
pub unsafe fn setElements(&self, elements: &NSArray<CPListImageRowItemElement>)
CPListImageRowItemElement only.Sourcepub unsafe fn allowsMultipleLines(&self) -> bool
pub unsafe fn allowsMultipleLines(&self) -> bool
A Boolean value indicating whether the elements should be visible in more than a single line.
Set the value of this property to
YESto allow elements to be visible on multiple lines. Set the value of this property to
NOto only show a single line of elements.
Sourcepub unsafe fn listImageRowHandler(
&self,
) -> *mut DynBlock<dyn Fn(NonNull<CPListImageRowItem>, NSInteger, dispatch_block_t)>
Available on crate features block2 and dispatch2 only.
pub unsafe fn listImageRowHandler( &self, ) -> *mut DynBlock<dyn Fn(NonNull<CPListImageRowItem>, NSInteger, dispatch_block_t)>
block2 and dispatch2 only.A block that is called when the user selects one of the images in this image row item.
The user may also select the cell itself - for that event, specify a
handler.
§Safety
- The returned block’s argument 1 must be a valid pointer.
- The returned block’s argument 3 must be a valid pointer.
Sourcepub unsafe fn setListImageRowHandler(
&self,
list_image_row_handler: Option<&DynBlock<dyn Fn(NonNull<CPListImageRowItem>, NSInteger, dispatch_block_t)>>,
)
Available on crate features block2 and dispatch2 only.
pub unsafe fn setListImageRowHandler( &self, list_image_row_handler: Option<&DynBlock<dyn Fn(NonNull<CPListImageRowItem>, NSInteger, dispatch_block_t)>>, )
block2 and dispatch2 only.Setter for listImageRowHandler.
This is copied when set.
Sourcepub unsafe fn maximumImageSize(mtm: MainThreadMarker) -> CGSize
👎Deprecated: Use +[CPListImageRowItemElement maximumImageSize] on an appropriate elementAvailable on crate feature objc2-core-foundation only.
pub unsafe fn maximumImageSize(mtm: MainThreadMarker) -> CGSize
objc2-core-foundation only.The expected image size for the grid images in your
CPListImageRowItem.Images provided
will be resized to this size.
To properly size your images, your app should size them to the display scale of the car screen. See -[CPInterfaceController carTraitCollection].
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for CPListImageRowItem
impl AsRef<AnyObject> for CPListImageRowItem
Source§impl AsRef<CPListImageRowItem> for CPListImageRowItem
impl AsRef<CPListImageRowItem> for CPListImageRowItem
Source§impl AsRef<NSObject> for CPListImageRowItem
impl AsRef<NSObject> for CPListImageRowItem
Source§impl Borrow<AnyObject> for CPListImageRowItem
impl Borrow<AnyObject> for CPListImageRowItem
Source§impl Borrow<NSObject> for CPListImageRowItem
impl Borrow<NSObject> for CPListImageRowItem
Source§impl CPListTemplateItem for CPListImageRowItem
impl CPListTemplateItem for CPListImageRowItem
Source§unsafe fn text(&self) -> Option<Retained<NSString>>
unsafe fn text(&self) -> Option<Retained<NSString>>
CPListItemTypes only.Source§unsafe fn userInfo(&self) -> Option<Retained<AnyObject>>
unsafe fn userInfo(&self) -> Option<Retained<AnyObject>>
CPListItemTypes only.Source§unsafe fn setUserInfo(&self, user_info: Option<&AnyObject>)
unsafe fn setUserInfo(&self, user_info: Option<&AnyObject>)
CPListItemTypes only.Source§impl CPSelectableListItem for CPListImageRowItem
impl CPSelectableListItem for CPListImageRowItem
Source§unsafe fn handler(
&self,
) -> *mut DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>
unsafe fn handler( &self, ) -> *mut DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>
block2 and dispatch2 and CPListItemTypes only.Source§unsafe fn setHandler(
&self,
handler: Option<&DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>>,
)
unsafe fn setHandler( &self, handler: Option<&DynBlock<dyn Fn(NonNull<ProtocolObject<dyn CPSelectableListItem>>, dispatch_block_t)>>, )
block2 and dispatch2 and CPListItemTypes only.Source§impl ClassType for CPListImageRowItem
impl ClassType for CPListImageRowItem
Source§const NAME: &'static str = "CPListImageRowItem"
const NAME: &'static str = "CPListImageRowItem"
Source§type ThreadKind = dyn MainThreadOnly
type ThreadKind = dyn MainThreadOnly
Source§impl Debug for CPListImageRowItem
impl Debug for CPListImageRowItem
Source§impl Deref for CPListImageRowItem
impl Deref for CPListImageRowItem
Source§impl Hash for CPListImageRowItem
impl Hash for CPListImageRowItem
Source§impl Message for CPListImageRowItem
impl Message for CPListImageRowItem
Source§impl NSObjectProtocol for CPListImageRowItem
impl NSObjectProtocol for CPListImageRowItem
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_refSource§fn isMemberOfClass(&self, cls: &AnyClass) -> bool
fn isMemberOfClass(&self, cls: &AnyClass) -> bool
Source§fn respondsToSelector(&self, aSelector: Sel) -> bool
fn respondsToSelector(&self, aSelector: Sel) -> bool
Source§fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
Source§fn debugDescription(&self) -> Retained<NSObject>
fn debugDescription(&self) -> Retained<NSObject>
Source§impl PartialEq for CPListImageRowItem
impl PartialEq for CPListImageRowItem
Source§impl RefEncode for CPListImageRowItem
impl RefEncode for CPListImageRowItem
Source§const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF
impl DowncastTarget for CPListImageRowItem
impl Eq for CPListImageRowItem
Auto Trait Implementations§
impl !Freeze for CPListImageRowItem
impl !RefUnwindSafe for CPListImageRowItem
impl !Send for CPListImageRowItem
impl !Sync for CPListImageRowItem
impl !Unpin for CPListImageRowItem
impl !UnwindSafe for CPListImageRowItem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<'a, T> MainThreadOnly for T
impl<'a, T> MainThreadOnly for T
Source§fn mtm(&self) -> MainThreadMarker
fn mtm(&self) -> MainThreadMarker
MainThreadMarker from the main-thread-only object. Read more